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

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

内容简介:不要浏览器检测!它会破坏,这会导致你的问题.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


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

查看所有标签

猜你喜欢:

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

算法基础

算法基础

布拉萨德 / 邱仲潘 / 清华大学出版社 / 2005-7 / 49.00元

本书是关于算法导论的经典教材,书中包括大量例题解答与命题证明。本书是按照算法类型而不是按照应用类型对算法进行介绍,以其清晰的概念讲解赢得专家们的广泛赞誉。本书适用对象广泛。对于学习算法设计与分析的本科生和研究生,本书是优透选教材。对于从事算法计算研究和工程应用的科研人员和工程技术人员,本书也是一本优秀的基础性读物。一起来看看 《算法基础》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具