内容简介:不要浏览器检测!它会破坏,这会导致你的问题.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
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 恶意软件如何绕过AMSI检测以逃避检测
- 行人检测新思路:高级语义特征检测取得精度新突破
- NIC:基于神经网络不变量检测的对抗样本检测
- 智能威胁检测:基于 Spark 的 SOC 机器学习检测平台
- CVPR 2019 | CSP行人检测:无锚点框的检测新思路
- 华为汽车中自动驾驶目标检测怎么理解?(通过跨模式的雷达目标检测)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
硅谷产品:36讲直通世界级产品经理
曲晓音 / 电子工业出版社 / 2018-10 / 59
《硅谷产品:36讲直通世界级产品经理》是Facebook资深产品经理曲晓音撰写的产品实战教程,立足于作者在Facebook、Instagram、Microsoft、Atlassian等硅谷科技公司的工作经验,分享硅谷先进的产品思维和方法论,用实际案例带领读者了解硅谷产品经理的所想所做。 《硅谷产品:36讲直通世界级产品经理》适合产品经理从业者、想要提升产品理解能力的技术运营人员、刚刚入行或者......一起来看看 《硅谷产品:36讲直通世界级产品经理》 这本书的介绍吧!