Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
Internet explorer IE10及以下浏览器检测_Internet Explorer - Fatal编程技术网

Internet explorer IE10及以下浏览器检测

Internet explorer IE10及以下浏览器检测,internet-explorer,Internet Explorer,我只想针对IE10及以下版本的IE浏览器。 请帮我做这个。 我试过下面的代码 var userAgent = navigator.userAgent; var regexIe8 = new RegExp("Trident(\/4.0)|(Trident\/5.0)"); if (regexIe8.test(userAgent)) { alert("test1"); }

我只想针对IE10及以下版本的IE浏览器。 请帮我做这个。 我试过下面的代码

var userAgent = navigator.userAgent;
            var regexIe8 = new RegExp("Trident(\/4.0)|(Trident\/5.0)");
            if (regexIe8.test(userAgent)) {
                alert("test1");
            }
            else {
                alert("test2");
            }

在Internet Explorer 11中,Microsoft去掉了“MSIE”,因此现在看起来是这样的:

Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
因此,您可以只检查“MSIE”的存在,告诉您它是否是旧版本

if (navigator.userAgent.indexOf("MSIE") >= 0) {
    document.write("You are using an unsupported version of Internet Explorer. Please upgrade to Internet Explorer 11 or use a different web browser.");
}

请注意,如果Internet Explorer位于compatibility view(兼容性视图)中,并且您尚未指定X-UA-Compatible标头,则它会将自身标识为IE 7,并与IE 7类似。

使用条件注释而不是Javascript检测:

<!--[if IE]>
<div class='old-browser'>You are running an un-supported version of Internet Explorer. Please upgrade</div>
<![endif]-->

只需将其直接粘贴到您希望通知显示的页面中。不需要Javascript(当然,如果您愿意,也可以在这里使用JS)


请注意,IE10不再支持条件注释,因此您只需检查
[如果IE]
,即可捕获IE9之前的所有IE版本。

以下是一个很棒的代码笔,它为IE和Edge的所有版本提供了完整的解决方案:

以下是链接中
window.navigator.userAgent
的各种值的示例:

  // IE 10
  // ua = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)';

  // IE 11
  // ua = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko';

  // Edge 12 (Spartan)
  // ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0';

  // Edge 13
  // ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586';

好的,那么你已经试过这个代码了。。。你试的时候发生了什么?我猜它不起作用,但你得到了什么符号?你试过调试它吗?这项技术应该是可行的,但是还有很多其他的检测IE的方法;你有没有试过?不同的技术更适合不同的用例:您需要检测IE的用例是什么?对于许多用例,根本不需要版本检测;您可能会发现功能检测更符合您的需要。我只想在IE10及以下浏览器中显示一个通知栏。当我使用上面的代码时,它不会抛出任何错误。简单地说,输出并不能提供。我也使用了下面的代码。if(navigator.userAgent.indexOf('MSIE')!=-1)var detectIEregexp=/MSIE(\d+\.\d+);/else var detectIEregexp=/Trident.*rv[:]*(\d+\.\d+)/if(detectIEregexp.test(navigator.userAgent)){var ieversion=新编号(RegExp.$1)if(IE10版本为什么不使用条件注释?是的,我同意。条件注释似乎更适合您的用例。条件注释在这里不起作用,因为IE10放弃了对它们的支持。参考官方文档:“从Internet Explorer 10开始,标准模式不再支持条件注释。”这意味着条件注释只在IE9.10中起作用,并且忽略它们。