最近一直接触底层代码,测试中发现IE浏览器以前判断的方法行不通了。
上例子吧:
var explorer =navigator.userAgent;
//ie
if (explorer.indexOf("MSIE") >= 0) {
alert("ie");
}
//firefox
else if (explorer.indexOf("Firefox") >= 0) {
alert("Firefox");
}
//Chrome
else if(explorer.indexOf("Chrome") >= 0){
alert("Chrome");
}
//Opera
else if(explorer.indexOf("Opera") >= 0){
alert("Opera");
}
//Safari
else if(explorer.indexOf("Safari") >= 0){
alert("Safari");
}
//Netscape
else if(explorer.indexOf("Netscape")>= 0) {
alert('Netscape');
}
这个上面都是可以行得通,但是IE11的判断就出现问题,因为IE11不存在MSIE,新增加了trident
对IE的判断修改一下:
方法一:
//ie
//判断浏览器是否支持ActiveX控件,如果浏览器支持ActiveX控件可以利用,
if (!!window.ActiveXObject || "ActiveXObject" in window){
alert("IE")
}
方法二:
//ie
//documentMode 是一个IE的私有属性,在IE8+中被支持。
if (window.document.documentMode){
alert("IE")
}