javascript判断IE浏览器版本和Edge代码

javascript判断IE浏览器版本和Edge代码

IE不标准的地方,unshift方法会返回新数组的长度,但IE6与IE7则返回undefined。

console.log([1].unshift(8))
//IE6、IE7下返回undefined,其它都是返回2

判断是否为IE8及以下版本

if (!+[1,]) {
    alert('<=8');
}

判断是否为IE9及以下版本

//方法一:
if (!('placeholder' in document.createElement('input'))) {
        alert('<=9');
}
//(IE9及以下版本不支持placeholder,代码较少) 

//方法二: 
if (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion.split(";")[1].replace(/[ ]/g, "").replace("MSIE", "")) < 10) {
        alert('<=9');
    }

判断是否为 IE10 及以下版本

if (!!document.all) {
    alert('<=10');
}

判断是否为 IE 浏览器

if(!!window.ActiveXObject || "ActiveXObject" in window){
    alert('Is IE');
}

判断是否为 Edge 浏览器

if (navigator.userAgent.indexOf("Edge") > -1) {
        alert('Is Edge');
}

判断是否为指定版本IE,比如判断是否为IE8或者IE10

if (
    navigator.appName == "Microsoft Internet Explorer" 
    && 
    navigator.appVersion.split(";")[1].replace(/[ ]/g, "")
    in 
    {
    'MSIE8.0': '',
    'MSIE10.0': ''
    }
) {
    alert(true)
}