Обнаружение IE с помощью jQuery

$(window).load(function () {
   if($.browser.msie && $.browser.version=="6.0") {
     // do stuff
   }
});

Только что понял, что $ .browser обесценился в версии 1.3. Какой новый метод обнаружения IE, особенно IE6.


person eozzy    schedule 22.12.2009    source источник
comment
jQuery.browser не является устаревшим. Хотя он больше не используется внутри jQuery, он доступен для пользовательских скриптов на неопределенное время: docs.jquery .com / Utilities / jQuery.browser.   -  person Crescent Fresh    schedule 22.12.2009
comment
В документации указано, что не рекомендуется в jQuery 1.3 (см. jQuery.support). Номер версии механизма визуализации для браузера пользователя.   -  person apaderno    schedule 22.12.2009
comment
Обнаружение функций намного лучше, чем анализ браузера. Чего вы пытаетесь достичь, когда ваша страница отображается в IE6?   -  person Christian C. Salvadó    schedule 22.12.2009
comment
Мы, как веб-разработчики, должны заключить договор о бойкоте IE до тех пор, пока люди не перестанут его использовать.   -  person OneChillDude    schedule 06.04.2013


Ответы (3)


В документации jQuery для jQuery.browser показано следующее предупреждение. (Акцент мой.)

Поскольку $.browser использует navigator.userAgent для определения платформы, она уязвима для спуфинга со стороны пользователя или введения в заблуждение самого браузера. По возможности всегда лучше избегать кода, специфичного для конкретного браузера. Вместо того, чтобы полагаться на $.browser, лучше использовать такие библиотеки, как Modernizr.

На странице документации также говорится:

Это свойство было удалено в jQuery 1.9 и доступно только через плагин jQuery.migrate. Попробуйте вместо этого использовать функцию обнаружения.

Даже jQuery.support, предложенный в старой документации, содержит следующее предупреждение. (Акцент мой.)

Набор свойств, отражающих наличие различных функций или ошибок браузера. Предназначен для внутреннего использования jQuery; определенные свойства могут быть удалены, когда они больше не нужны внутри, для повышения производительности запуска страницы. Для обнаружения функций в вашем собственном проекте мы настоятельно рекомендуем использовать внешнюю библиотеку, такую ​​как Modernizr < / strong> вместо зависимости от свойств в jQuery.support.

В предыдущей документации для jQuery.support сообщалось о следующих свойствах и значениях.

  • $.support.boxmodel - это false в IE 6 и 7.
  • $.support.cssFloat это false для IE 6, 7 и 8; это true в IE 9.
  • $.support.leadingWhitespace это false для IE 6, 7 и 8.
  • $.support.objectAll в настоящее время false для IE 6, 7 и 8.
person apaderno    schedule 22.12.2009
comment
Для всех остальных, кто нашел этот комментарий, $ .support.cssFloat неверно для IE 6, 7 и 8. В IE 9 это верно. - person Nemke; 01.03.2013
comment
Я знаю, что это старый ответ, но отладка в IE9 в режиме браузера IE7 имеет $ .support.boxModel === true. Может это потому, что я использую режим браузера в IE9 ?? - person kand; 06.03.2013

hot из документации: мы не рекомендуем использовать это свойство, попробуйте вместо этого использовать обнаружение функций (см. jQuery. поддержка).

person just somebody    schedule 22.12.2009

Показать информацию о браузере

jQuery.each( jQuery.browser, function( i, val ) {
$( "<div>" + i + " : <span>" + val + "</span>" )
.appendTo( document.body );
});

Предупредить версию используемого движка рендеринга IE. Не будет работать в jQuery 1.9 или новее, если не включен плагин jQuery Migrate.

if ( $.browser.msie ) {
alert( $.browser.version );
}
person Community    schedule 17.06.2014