如何使用JavaScript检测Internet Explorer(IE)和Microsoft Edge?
我查了很多,我明白,有很多方法来检测Internet Explorer。 我的问题是这样的:我在HTML文档上有一个区域,点击时调用与任何类型的Internet Explorer不兼容的JavaScript函数。 我希望检测是否正在使用IE,如果是,请将变量设置为true。 问题是,我正在使用记事本++编写我的代码,并且当我在浏览器中运行HTML代码时,没有任何方法可以检测IE炒锅。 我认为问题在于我正在使用记事本++。 我需要能够检测IE,所以基于变量,我可以禁用该网站的该区域。 我试过这个:
/* Write JavaScript here */
var isIE10 = false;
if (navigator.userAgent.indexOf("MSIE 10") > -1) {
// this is internet explorer 10
isIE10 = true;
window.alert(isIE10);
}
var isIE = (navigator.userAgent.indexOf("MSIE") != -1);
if(isIE){
if(!isIE10){
window.location = 'pages/core/ie.htm';
}
}
但它不起作用。 我如何检测IE记事本++? 这就是我测试HTML的原因,但我需要一种可以在网站上使用的方法。 帮帮我!
编辑
我注意到有人将此标记为重复,这是可以理解的。 我想我不清楚。 我不能使用JQuery的答案,所以这不是重复的,因为我要求一个香草JS答案。
编辑#2还有一种方法来检测边缘浏览器?
我不知道为什么,但是我没有像其他人所说的那样在userAgent中看到“边缘”,所以我不得不采取另一条路线来帮助一些人。
我没有看navigator.userAgent,而是看着navigator.appName来区分它是IE <= 10还是IE11和Edge。 IE11和Edge使用“Netscape”的appName,而其他所有迭代都使用“Microsoft Internet Explorer”。
在确定浏览器是IE11或Edge之后,我查看navigator.appVersion。 我注意到在IE11中,字符串很长,其中有很多信息。 我随意挑选了“三叉戟”这个词,它绝对不在导航器的边缘.app版本中。 测试这个词让我能够区分这两个词。
下面是一个函数,它将返回用户所在的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;
}
以下是我知道如何检查IE和Edge的最新正确方法:
if (/MSIE 10/i.test(navigator.userAgent)) {
// This is internet explorer 10
window.alert('isIE10');
}
if (/MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent)) {
// This is internet explorer 9 or 11
window.location = 'pages/core/ie.htm';
}
if (/Edge/d./i.test(navigator.userAgent)){
// This is Microsoft Edge
window.alert('Microsoft Edge');
}
请注意,您的代码中不需要额外的var isIE10,因为它现在执行了非常具体的检查。
还请查看此页面以获取最新的IE和Edge用户代理字符串,因为此答案在某些时候可能会过时:https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29。 ASPX
我正在使用UAParser https://github.com/faisalman/ua-parser-js
var a = new UAParser();
var name = a.getResult().browser.name;
var version = a.getResult().browser.version;
链接地址: http://www.djcxy.com/p/36449.html
上一篇: How can I detect Internet Explorer (IE) and Microsoft Edge using JavaScript?
下一篇: EMBED vs. OBJECT