我正在使用以下代码来发现用户浏览器:
navigator.appName == "Microsoft Internet Explorer"
它一直有效,但是IE11正在返回 Netscape
我读过,浏览器检测是一种不好的做法。(为什么JavaScript navigator.appName为Safari,Firefox和Chrome返回Netscape?),我们应该检测该功能。但是MS网站正在教我如何检测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的正确方法是什么?
如前所述,正确的方法是仅检查功能,而根本不要进行浏览器嗅探。
function stop() {
if ('execCommand' in document) {
document.execCommand('Stop');
}else{
window.stop()
}
}
要做到这一点,您可以使用execCommand来polyfill window.stop,就像这样
if (! ( typeof window.stop == 'function' &&
window.stop.toString().indexOf('native code') != -1
)
) {
window.stop = function () {
document.execCommand('Stop');
}
}
这也将确保它是本机方法,并且已在Chrome,Firefox和Opera中进行了测试
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句