Определить, является ли браузер IE 7 или ниже?

Итак, я собираюсь добавить перенаправление на мой сайт, чтобы бросить все, что использует, т.е. 7 или ниже, на другую страницу и придумал этот JavaScript, но, похоже, он перестает работать.

<script type="text/javascript">
 if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test for MSIE x.x;
  var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number
   if (ieversion<=8)
    window.location = "ie.html" 
   }
   window.location = "main.html"
</script>

Ответы

Ответ 1

Ваш код всегда приводит к переходу на main.html. Даже когда код попадает в <8, вы выпадаете из if в значение main.

Рассмотрим рефакторинг либо:

  • установка return после установки на ie.

или

var redir="main.html";
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent))
{ 
   var ieversion=new Number(RegExp.$1);
   if (ieversion<=8)
   {
      redir = "ie.html";
   }
}
window.location = redir;

Ответ 2

Отметьте условные комментарии.

Итак, вы можете сделать что-то вроде:

<script type="text/javascript">
    <!--[if (!IE)|(gt IE 7)]>
      window.location = "ie.html" 
    <![endif]-->

    <!--[if lt IE 8]>
      window.location = "main.html"
    <![endif]-->
</script>

Ответ 3

Условные комментарии (как это предлагает @Kon) - это путь. Здесь рабочая реализация:

<script type="text/javascript">
    var ie7OrLower = false;
</script>

<!--[if lte IE 7]><script type="text/javascript">
   ie7OrLower = true;
</script><![endif]-->

<script type="text/javascript">
    window.location = ie7OrLower ? "ie.html" : "main.html";
</script>

Ответ 4

Вы можете проверить его с помощью этого регулярного выражения: (MSIE\[0-7].\d +)

Вот пример JavaScript о том, как его использовать:

if (/(MSIE\ [0-7]\.\d+)/.test(navigator.userAgent)) {
    // do something
}

Ответ 5

Я всегда использовал режим Quirks Mode BrowserDetect.js для моих нужд обнаружения браузера. Проверьте это - http://www.quirksmode.org/js/detect.html

Как только вы ссылаетесь на файл .js, вы можете получить доступ к большому количеству информации:

//Browser Name
BrowserDetect.browser
//Browser Version
BrowserDetect.version
//Operating system
BrowserDetect.OS