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

Обнаружение версии IE в режиме эмуляции через условную компиляцию JavaScript

В свежей статье в блоге IE есть ответ на вопрос как обнаружить версию браузера Internet Explorer в любом режиме (например, в режиме эмуляции другой версии):

@_jscript_version statement is actually an indicator of which version of JScript is in use by the browser as a whole. In ALL document modes of IE9, this statement currently equates to “9”. In ALL document modes of IE8 it equates to “5.8” and in IE7 it is “5.7”

Отсюда вывод:

/*@cc_on
    @if( @_jscript_version == 5.8 )
        // Это полюбому IE 8
        ...
    @end
@*/

То есть (перевожу) «@_jscript_version» в IE8 всегда равно «5.8», в IE7 — «5.7» , а в IE9 — «9».

3 комментария
greli (greli.livejournal.com) 2010

5.7 — это ещё и <a href=» http://erik.eae.net/archives/2007/12/14/20.07.27/%22%3EIE6 SP3</a>, сюрприз!

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

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

Фигассе. Пишешь-пишешь, что не HTML, даже болдом написал (надо ещё сделать мигающую надпись), а всё равно HTML вставляют.

А по существу, надо найти теперь комп с IE6, поставить туда эту библиотеку и посмотреть чему там будет равно @_jscript_version. Мда.

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

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

Ну и это не IE6 SP3, а Windows XP SP3.