Обнаружить Internet Explorer 6 или ниже в jQuery - PullRequest
45 голосов
/ 19 февраля 2009

Я новичок в jquery, и мне было интересно: это простой способ определить, является ли браузер Internet Explorer 6 или ниже?

Ответы [ 13 ]

102 голосов
/ 01 июля 2009

Так просто, как это:

if($.browser.msie && $.browser.version=="6.0") alert("Im the annoying IE6");

Обновление

Обратите внимание, что $. Browser удален из jQuery 1.9

Если вам все еще нужно использовать $ .browser в jQuery 1.9 (или других устаревших функциях), попробуйте jQuery-migrate (https://github.com/jquery/jquery-migrate/ - http://code.jquery.com/jquery-migrate-1.2.1.js)

50 голосов
/ 06 мая 2009

Вы также можете напрямую спросить IE.

<!--[if lte IE 6]>
<script type="text/javascript">
  var isRunningIE6OrBelow = true;
</script>
<![endif]-->
16 голосов
/ 19 февраля 2009

jQuery проверяет функции, а не «браузеры». Тем не менее, вы можете использовать метод jQuery.support , чтобы определить, на что способен браузер пользователя.

Устаревшие методы (не использовать)

  • $. Браузер
  • $. Browser.version
  • $. BoxModel

http://docs.jquery.com/Utilities/jQuery.support предоставит вам сводку о том, какие функции поддерживаются какими браузерами. Используя эти данные, вы разработаете пару условных проверок, чтобы определить, является ли используемый браузер вашим целевым браузером или нет.

8 голосов
/ 29 ноября 2011
if ($.browser.msie && parseInt($.browser.version, 10) <= 6) {
  alert("I'm not dead yet!"); 
}

- обновление

Обратите внимание, что $. Browser * удален из jQuery 1.9

6 голосов
/ 06 мая 2009

Очень хороший способ обнаружить IE:

if ('v'=='\v') {
   welcome to IE )) 
}

К сожалению, он не может распознать свою версию, но это не всегда необходимо.

5 голосов
/ 10 января 2012

Если ActiveXObject существует, а XMLHttpRequest нет, то это IE6:

/* IE6 Check */
(!!window.ActiveXObject && !window.XMLHttpRequest) ? true : false;

В IE7 это будет:

(!!window.ActiveXObject && !!window.XMLHttpRequest) ? true: false;

Ссылки

3 голосов
/ 19 января 2010

Я часто проверяю версию браузера. Метод .support хорош, но на самом деле он не помогает, когда вам нужно скрыть выборки при наложении. Не существует «поддерживает выделенные элементы управления окнами». Вам просто нужно проверить версию браузера, поэтому я бы сказал, ошибся в отношении метода .support, где вы можете, и используйте .browser, где это необходимо.

3 голосов
/ 05 августа 2009

Кроме того, еще одним хорошим моментом является то, что с JQuery вам не следует беспокоиться о версии.

Это не поможет, если вы используете jquery для исправления ошибки рендеринга css в IE6.

1 голос
/ 13 февраля 2012

я всегда использовал это решение

http://sinfinity.pl/blog/2012/02/12/detect-internet-explorer-and-browser-version-in-jquery/

1 голос
/ 10 декабря 2010

Просто чтобы люди знали $ .browser.msie && /6.0/.test(navigator.userAgent) не является надежным, я пришел к этому вопросу в поисках ответа на проблему с bgiframe JQuery, которая не работает на моей машине, потому что в моей строке navigator.userAgent есть «Media Center PC 6.0». Теперь я отредактировал источник для использования теста $ browser.version.

Глупо из JQuery отказываться от этих тестов браузера, потому что, как бы они ни были уродливы, они необходимы для того, чтобы справляться с ужасным состоянием экосистемы браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...