加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 23:42:14 所属栏目:asp.Net 来源:网络整理
导读:你好我想检测浏览器,IE8以上会适合我.为此,我使用以下代码,但它失败的IE 11.其他检测正确. function getInternetExplorerVersion(){ var rv = -1; // Return value assumes failure. if (navigator.appName == 'Microsoft Internet Explorer') { var ua = na
你好我想检测浏览器,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和更高版本,所以不应该适用.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读