检测浏览器是IE 7还是更低?

时间:2011-05-23 23:15:52

标签: javascript html internet-explorer

所以我要在我的网站上添加一个重定向,将每个正在使用的内容(即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>

6 个答案:

答案 0 :(得分:12)

您的代码始终会转到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;

答案 1 :(得分:9)

结帐conditional comments

所以你可以这样做:

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

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

答案 2 :(得分: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>

答案 3 :(得分:2)

您可以使用此正则表达式对其进行测试:(MSIE\ [0-7]\.\d+)

以下是有关如何使用它的JavaScript示例:

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

答案 4 :(得分:1)

我一直使用Quirks Mode的BrowserDetect.js来满足我的浏览器检测需求。看看 - http://www.quirksmode.org/js/detect.html

一旦引用了.js文件,就可以访问大量信息:

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

答案 5 :(得分:0)

我只是使用http://www.ie6nomore.com/

上的示例