Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检测浏览器是否为IE 7或更低版本?_Javascript_Html_Internet Explorer - Fatal编程技术网

Javascript 检测浏览器是否为IE 7或更低版本?

Javascript 检测浏览器是否为IE 7或更低版本?,javascript,html,internet-explorer,Javascript,Html,Internet Explorer,因此,我将添加一个重定向到我的站点,将每个使用IE7或更低版本的人扔到不同的页面,并提出了这个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

因此,我将添加一个重定向到我的站点,将每个使用IE7或更低版本的人扔到不同的页面,并提出了这个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>

if(/MSIE(\d+\.\d+;/.test(navigator.userAgent)){//test for MSIE x.x;
var ieversion=newnumber(RegExp.$1)//捕获x.x部分并存储为一个数字
如果(IEV)版本请签出

因此,您可以执行以下操作:

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

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

我一直使用Quirks模式的BrowserDetect.js满足我的浏览器检测需求。请查看-

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

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

您的代码总是导致转到
main.html
。即使代码落入
中,我也会使用中的示例。条件注释(如@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>

var ie7OrLower=错误;
window.location=ie7OrLower?“ie.html”:“main.html”;

您可以使用以下正则表达式测试它:
(MSIE\[0-7]\.\d+

下面是一个关于如何使用它的JavaScript示例:

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

如果你正在测试IE 7或更低版本,那么你的代码应该说
使用UA字符串进行浏览器嗅探肯定是网站设计不佳的标志。多年来,人们一直在使用功能或功能检测来编写跨浏览器网站,以适应从IE 5到现在的每一款浏览器,这并不难。我会这么做,但我正在尝试使用某种技术ing比IE有条件的评论稍微优雅一点。@ellisgeek你在用可靠性来交换“优雅”忽略这个答案。UA嗅探非常脆弱,很可能会适得其反。不确定条件注释有什么不雅之处。它们可以工作。文件是错误的,非IE浏览器不会执行任何一条语句。但是,条件注释是可行的。@mare,我不同意。有一些解决方案是worse并经常中断浏览器或JS库版本升级。您可以将100%的JS放在外部文件中,并且仍然使用条件注释来呈现外部JS读取的某些元数据元素。我不是说这是最好的解决方案,但这不是一个坏的解决方案。有志者事竟成。:)
if (/(MSIE\ [0-7]\.\d+)/.test(navigator.userAgent)) {
    // do something
}