【发布时间】:2014-10-12 01:48:50
【问题描述】:
我正在使用以下代码来发现用户浏览器:
navigator.appName == "Microsoft Internet Explorer"
它总是有效,但 IE11 正在返回 Netscape
我读到浏览器检测是一种不好的做法。 (Why does JavaScript navigator.appName return Netscape for Safari, Firefox and Chrome?),我们应该检测特征。但是MS的site正在教我如何检测IE浏览器。
在 IE11 中,甚至 userAgent 都会提到 IE:
Mozilla/5.0(Windows NT 6.3;WOW64;Trident/7.0;.NET4.0E;.NET4.0C; InfoPath.3; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; rv:11.0) 喜欢壁虎
这就是说:
了解我必须使用什么的正确方法是什么?
比如我用的是IE,命令是:
window.document.execCommand('Stop');
否则,命令是
window.stop()
搭便车,知道浏览器是否支持HTML5的正确方法是什么?
【问题讨论】:
-
关于您的最后一个问题,请参考here。
-
他们怎么知道我的浏览器?
-
您真的应该阅读有关使用特征检测而不是浏览器检测的信息。浏览器检测很脆弱,每次发布新浏览器时都会中断。特征检测不正确是向前和向后兼容的。
-
modernizr.com真的没那么受欢迎吗?
-
window.stop ? window.stop() : document.execCommand('Stop');
标签: javascript html cross-browser