Как обнаружить IE6 с помощью JavaScript? - PullRequest
2 голосов
/ 09 мая 2011

Как мне сделать, чтобы обнаружить Internet Explorer и более низкие версии, используя JavaScript? Я знаю об объекте навигатора, но какую информацию он посылает для его идентификации?

Ответы [ 3 ]

6 голосов
/ 09 мая 2011

Я рекомендую использовать условные комментарии для загрузки CSS или JS, предназначенных для IE x.x, как предлагает @ Jason McCreary . Однако, если вы глубоко разбираетесь в коде JS-плагина или чего-то еще и нуждаетесь в нем для JS, это довольно верный способ сделать это:

function getInternetExplorerVersion()
// Returns the version of Internet Explorer or a -1
// (indicating the use of another browser).
{
  var rv = -1; // Return value assumes failure.
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv;
}

А если вы минималист, немного бунтарь; этот метод, я считаю, на самом деле работает:

if (typeof document.body.style.maxHeight != "undefined") {
    // IE 7, moz, saf, opera 9
    } else{
    // IE6, older browsers
}
5 голосов
/ 09 мая 2011

Если у вас есть доступ к коду, я предлагаю условные комментарии .Это 100% и менее JavaScript.

<!--[if IE 6]>
<script type="text/javascript">
var IE6 = true;
</script>
<![endif]-->

Если нет, то традиционные методы JavaScript включают анализ navigator или обнаружение других объектов для обнаружения браузера.

2 голосов
/ 10 мая 2011

Условные комментарии - это, пожалуй, лучший подход, как предложил Джейсон МакКрири. Можно использовать условные комментарии только с JavaScript следующим образом:

var div = document.createElement("div");
div.innerHTML = "<!--[if lte IE 6]><i></i><![endif]-->";
var isIe6orLower = !!div.getElementsByTagName("i").length;

alert("Is IE 6 or lower: " + isIe6orLower);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...