Пишу, по большей части, про историю, свою жизнь и немного про программирование.

Короткий способ определять IE

А какой сейчас самый короткий способ определять Эксплорер? Я понимаю, что привязываться к браузеру нехорошо, но у меня конкретная задача, которую никак не обойти — нужно проиграть звук в браузере (PCM wave), а ИЕ на запрос «сможешь проиграть?» к тегу AUDIO, говорит maybe. Т. е. давайте сюда свой звук, может и смогу. Я-то знаю, что не сможет — аудиотег в этом браузере «вавки» не играет, нужен EMBED.

Все короткие способы, которые раньше работали (условная компиляция, сравнение вертикального пробела с буквой v, хитрый хак с массивом и прочее) в 11-й версии работать перестали. Даже строку агента поменяли — там теперь нет MSIE.

В общем, я пока остановился на такой версии:

if (top.VBArray) {
    // IE
} else {
    // остальные браузеры
}

Но буду признателен за что-то более короткое или очевидное.

8 комментариев
LO 2014

1-’\0’?’IE’:’!IE’

Евгений Степанищев (bolknote.ru) 2014

Комментарий для LO:

О, спасибо! И в IE11 работает.

Сергей 2014

Простите, а в чем очевидность этого способа? :)

1-’\0’?’IE’:’!IE’

Евгений Степанищев (bolknote.ru) 2014

Комментарий для Сергей:

более короткое или очевидное.

Евгений Степанищев (bolknote.ru) 2014

На 12-м IE пока тоже работает (так же как и top.VBArray).

greli.liverjournal.com/ 2014

Ох, не люблю я эти шаманства вроде ’\v’==’v’ (судя по IE11, не работает начиная с IE9). В строке агента тем не менее осталось слово «Trident».

Евгений Степанищев (bolknote.ru) 2014

Комментарий для http://greli.liverjournal.com/:

Ох, не люблю я эти шаманства вроде ’\v’==’v’

Их просто интересно знать.

В строке агента тем не менее осталось слово «Trident».

Его нет в IE8: http://blogs.msdn.com/b/ie/archive/2008/02/21/the-internet-explorer-8-user-agent-string.aspx

Евгений Степанищев (bolknote.ru) 2014

Комментарий для http://greli.liverjournal.com/:

Да и, опять же, неясно сколько эта строка там продержится. Может в 12-й уже исчезнет. Знать бы когда они WAV научатся играть, я бы полноценно к версиям привязался.