如何用Asp.net中的javascript检测IE 11

栏目: ASP.NET · 发布时间: 6年前

内容简介:不要浏览器检测!它会破坏,这会导致你的问题.IE11与以前的IE版本具有完全不同的用户代理字符串;它不再包含“MSIE”文本.这就是为什么你的检测代码不起作用.请注意,他们这样做的原因是故意的.他们想要像这样打破浏览器检测脚本.

你好我想检测浏览器,IE8以上会适合我.为此,我使用以下代码,但它失败的IE 11.其他检测正确.

function getInternetExplorerVersion()
{
    var rv = -1; // Return value assumes failure.
    if (navigator.appName == 'Microsoft Internet Explorer') {
        var ua = navigator.userAgent;
        var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
        if (re.exec(ua) != null)
            rv = parseFloat(RegExp.$1);
    }
    return rv;
}

以下是我尝试但不能成功的链接.

不要浏览器检测!它会破坏,这会导致你的问题.

IE11与以前的IE版本具有完全不同的用户代理字符串;它不再包含“MSIE”文本.这就是为什么你的检测代码不起作用.

请注意,他们这样做的原因是故意的.他们想要像这样打破浏览器检测脚本.

可以将您的代码更改为使用IE11,但我强烈建议您不要这样做,因为当IE12出来时,您可能会再次出现同样的问题.

那么为什么他们想打破浏览器检测脚本?简单:因为IE11没有以前的版本的bug,它有很多新功能.因此,如果您正在进行浏览器检测,因为IE具有某些错误或缺少功能,并且您已经有了基于浏览器检测来修复这些问题的代码,那么该代码实际上可能会导致IE11中不需要修复的更严重的问题.

IE11已经破坏了您的脚本,但同样的逻辑适用于所有浏览器和所有版本;检测浏览器和版本几乎总是错误的事情.

如果您想要支持的特定功能,但在较旧的IE版本(或其他较旧的浏览器)中缺少,请勿使用浏览器检测来实现;您应该使用功能检测.

功能检测意味着检查浏览器是否支持您要使用的特定功能.最常用的方法是使用 Modernizr 库.他们网站上的文档将指导您进行设置.

较旧的IE版本中有几个错误很难被检测到,而对于这些少数情况,使用浏览器检测作为最后的手段是有效的,但是这些情况只适用于IE6和更早版本.也许偶尔为IE7.但是你在这个问题上已经说过,你只是在看IE8和更高版本,所以不应该适用.

坚持功能检测;更可靠,更好的做法,并且当新的浏览器版本发布时不会突然崩溃.

http://stackoverflow.com/questions/18871760/how-to-detect-ie-11-with-javascript-in-asp-net


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Mechanics of Web Handling

The Mechanics of Web Handling

David R. Roisum

This unique book covers many aspects of web handling for manufacturing, converting, and printing. The book is applicable to any web including paper, film, foil, nonwovens, and textiles. The Mech......一起来看看 《The Mechanics of Web Handling》 这本书的介绍吧!

html转js在线工具
html转js在线工具

html转js在线工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具