我不知道为什么,但是我并没有像其他人正在谈论的那样在userAgent中看到“Edge”,所以我不得不采取另一条可能帮助某些人的路线。
而不是查看navigator.userAgent,我查看了navigator.appName来区分是IE / = 10或IE11和Edge。 IE11和Edge使用“Netscape”的appName,而每个其他的迭代使用“Microsoft Internet Explorer”。
在我们确定浏览器是IE11或者Edge之后,我再看Navigator.appVersion。我注意到,在IE11中,字符串是相当长的,其中有很多信息。我随意挑出了“Trident”这个词,这绝对不是在navigator.appVersion for Edge中。测试这个词可以让我区分两个。
以下是一个函数,它将返回用户所在的Internet Explorer的数值。如果在Microsoft Edge上返回数字12。
祝你好运,希望这有帮助!
function Check_Version(){
var rv = -1; // Return value assumes failure.
if (navigator.appName == 'Microsoft Internet Explorer'){
var ua = navigator.userAgent,
re = new RegExp("MSIE ([0-9]{1,}[\\.0-9]{0,})");
if (re.exec(ua) !== null){
rv = parseFloat( RegExp.$1 );
}
}
else if(navigator.appName == "Netscape"){
/// in IE 11 the navigator.appVersion says 'trident'
/// in Edge the navigator.appVersion does not say trident
if(navigator.appVersion.indexOf('Trident') === -1) rv = 12;
else rv = 11;
}
return rv;
}