Обнаружение IE9 без обнаружения функций

Поэтому мне нужно обнаружить IE 9. Я знаю, что действительно должен использовать обнаружение функций но я не знаю, какая функция вызывает мою проблему, все, что я знаю, это то, что Ie 9 вызывает у меня проблемы.

У меня есть работа над моей проблемой (для тех, кто заинтересован, я задал вопрос о проблеме здесь, но на самом деле это не имеет значения).

Теперь я хочу применить это исправление hack только для IE9, так как это вызывает у меня головную боль.

Итак, как лучше всего обнаружить IE 9?


person Liam    schedule 23.07.2013    source источник
comment
Условные комментарии IE ...   -  person Musa    schedule 23.07.2013
comment
api.jquery.com/jQuery.browser   -  person mavili    schedule 23.07.2013
comment
$ .browser устарел с jQuery 1.3 и был удален в 1.9   -  person jmoerdyk    schedule 23.07.2013


Ответы (2)


Эти условные выражения IE дадут вам класс CSS для отключения ключа:

<!--[if lt IE 7]> <html class="lt-ie10 lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="lt-ie10 lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="lt-ie10 lt-ie9" lang="en"> <![endif]-->
<!--[if IE 9]> <html class="lt-ie10" lang="en"> <![endif]-->
<!--[if gt IE 9]><!--> <html lang="en"> <!--<![endif]-->

Итак, если вас интересует только IE9, вы можете:

<!--[if IE 9]> <html class="ie9" lang="en"> <![endif]-->

Или, по условию:

<!--[if IE 9]> <html class="lt-ie10" lang="en"> <![endif]-->

Тогда ваш JS (и CSS) может отключить селектор HTML.lt-ie10:

 if ($('HTML.lt-ie10').length) {
     //this is IE9 and older
 }
 else {
     //this is not IE9 and older (so it could be Chrome, or Safari or IE10, etc)
 }
person Jeromy French    schedule 23.07.2013
comment
Вот дополнительная информация о том, как их использовать: positioniseverything.net/articles/cc-plus. html - person pudelhund; 23.07.2013
comment
Можно также сделать последний <!--[if IE 9]><!--> <html class="no-js" lang="en"> <!--<![endif]-->, поскольку IE10 будет обрабатывать условные комментарии, как и любой другой браузер, отличный от IE. ;) - person Derek Henderson; 23.07.2013
comment
Я нашел это полезным, чтобы помочь мне с синтаксисом, кстати: quirksmode.org/css/condcom.html < / а> - person Liam; 23.07.2013

Использование JQuery (1.8 или ниже)

if ( $.browser.msie && $.browser.version == 9) {
    // Your code here
}
person Ash Burlaczenko    schedule 23.07.2013
comment
Свойство browser устарело давным-давно и было удалено в jQuery 1.9. - person James Allardice; 23.07.2013
comment
не понимал, что у этого есть версия, а также флаг msie! - person Liam; 23.07.2013
comment
@JamesAllardice, я не понимал, зачем им это делать! - person Ash Burlaczenko; 23.07.2013
comment
как @JamesAllardice, сказал, что я также опасался связывать себя со старыми версиями JQuery! - person Liam; 23.07.2013
comment
@AshBurlaczenko, потому что вам действительно следует выполнять обнаружение функций, а не анализировать версию браузера. - person jmoerdyk; 23.07.2013