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

ell*_*eek 14 html javascript 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>
Run Code Online (Sandbox Code Playgroud)

p.c*_*ell 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;
Run Code Online (Sandbox Code Playgroud)


Kon*_*Kon 9

查看条件评论.

所以你可以这样做:

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

    <!--[if lt IE 8]>
      window.location = "main.html"
    <![endif]-->
</script>
Run Code Online (Sandbox Code Playgroud)

  • @ellisgeek忽略了这个答案,你正在为"优雅"交换可靠性.UA嗅探非常脆弱,可能会适得其反. (3认同)