Короткий способ определять IE
А какой сейчас самый короткий способ определять Эксплорер? Я понимаю, что привязываться к браузеру нехорошо, но у меня конкретная задача, которую никак не обойти — нужно проиграть звук в браузере (PCM wave), а ИЕ на запрос «сможешь проиграть?» к тегу AUDIO, говорит maybe. Т. е. давайте сюда свой звук, может и смогу. Я-то знаю, что не сможет — аудиотег в этом браузере «вавки» не играет, нужен EMBED.
Все короткие способы, которые раньше работали (условная компиляция, сравнение вертикального пробела с буквой v, хитрый хак с массивом и прочее) в 11-й версии работать перестали. Даже строку агента поменяли — там теперь нет MSIE.
В общем, я пока остановился на такой версии:
if (top.VBArray) {
// IE
} else {
// остальные браузеры
}
Но буду признателен за что-то более короткое или очевидное.
1-’\0’?’IE’:’!IE’
Комментарий для LO:
О, спасибо! И в IE11 работает.
Простите, а в чем очевидность этого способа? :)
Комментарий для Сергей:
На 12-м IE пока тоже работает (так же как и top.VBArray).
Ох, не люблю я эти шаманства вроде ’\v’==’v’ (судя по IE11, не работает начиная с IE9). В строке агента тем не менее осталось слово «Trident».
Комментарий для http://greli.liverjournal.com/:
Их просто интересно знать.
Его нет в IE8: http://blogs.msdn.com/b/ie/archive/2008/02/21/the-internet-explorer-8-user-agent-string.aspx
Комментарий для http://greli.liverjournal.com/:
Да и, опять же, неясно сколько эта строка там продержится. Может в 12-й уже исчезнет. Знать бы когда они WAV научатся играть, я бы полноценно к версиям привязался.