Internet Explorer 11检测
我知道IE 11具有不同于所有其他IE的用户代理string
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko
我试图检测IE 11与此问题指定的答案'
jquery未能检测到IE 11
那是!!navigator.userAgent.match(/Trident\/7\./)
但是我得到的错误Object not found and needs to be re-evaluated.
然后我在IE11中打开开发者控制台,并试图访问一些预定义的JavaScript对象,我仍然得到相同的错误。
我努力了
navigator.userAgent
window.navigator
console.log('test');
任何人有任何想法呢?
编辑2016年11月18日
此代码也适用于( 对于那些喜欢另一种解决scheme,而不使用ActiveX )
var isIE11 = !!window.MSInputMethodContext && !!document.documentMode; // true on IE11 // false on Edge and other IEs/browsers.
原始答复
为了检查Ie11,你可以使用这个:(testing)
(或者运行这个 )
!(window.ActiveXObject) && "ActiveXObject" in window
我有IE的所有VMS:
注意:这不会为IE12工作:
正如你在这里看到的,它返回true:
那么我们可以做什么:
显然,他们添加了机器位空间:
ie11:
"Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; rv:11.0) like Gecko"
ie12:
"Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; rv:11.0) like Gecko"
所以我们可以这样做:
/x64|x32/ig.test(window.navigator.userAgent)
这只会返回真正的ie12。
要快速检测MSIE(从版本6到11):
if(navigator.userAgent.indexOf('MSIE')!==-1 || navigator.appVersion.indexOf('Trident/') > 0){ /* Microsoft Internet Explorer detected in. */ }
所有上述答案都忽略了你提到你没有窗口或导航的事实:-)
然后,我在IE11中打开开发者控制台
那就是它说的地方
找不到对象,需要重新评估。
和导航,窗口,控制台,他们都不存在,需要重新评估。 我已经在模拟。 只需closures并打开控制台几次。
我使用以下函数来检测IE的版本9,10和11:
function ieVersion() { var ua = window.navigator.userAgent; if (ua.indexOf("Trident/7.0") > 0) return 11; else if (ua.indexOf("Trident/6.0") > 0) return 10; else if (ua.indexOf("Trident/5.0") > 0) return 9; else return 0; // not IE9, 10 or 11 }
而我是如何实现这一点的
<script type="text/javascript"> !(window.ActiveXObject) && "ActiveXObject" function isIE11(){ return !!navigator.userAgent.match(/Trident.*rv[ :]*11\./); } </script>
使用此RegExp似乎适用于IE 10和IE 11:
function isIE(){ return /Trident\/|MSIE/.test(window.navigator.userAgent); }
我没有IE 10以上的IE来testing这个。
这个链接是有帮助的 。 它包含了JavaScript代码来检测到IE11的所有版本。 我用IE11模拟器testing了脚本。 要查找IE11模拟器,请右键单击Web浏览器,然后单击“检查元素”。 在页面的左下方,向下滚动导航栏并单击桌面图标。 “用户代理string”下拉框包含模拟IE6-11的选项。
有用。 在写这个答案之前,我只是用了几分钟。 无法发布快照 – 信誉不足。
这是代码 – 按照链接再次查看:
// Get IE or Edge browser version var version = detectIE(); if (version === false) { document.getElementById('result').innerHTML = '<s>IE/Edge</s>'; } else if (version >= 12) { document.getElementById('result').innerHTML = 'Edge ' + version; } else { document.getElementById('result').innerHTML = 'IE ' + version; } // add details to debug result document.getElementById('details').innerHTML = window.navigator.userAgent; /** * detect IE * returns version of IE or false, if browser is not Internet Explorer */ function detectIE() { var ua = window.navigator.userAgent; // Test values; Uncomment to check result … // IE 10 // ua = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)'; // IE 11 // ua = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko'; // Edge 12 (Spartan) // ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0'; // Edge 13 // ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586'; var msie = ua.indexOf('MSIE '); if (msie > 0) { // IE 10 or older => return version number return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10); } var trident = ua.indexOf('Trident/'); if (trident > 0) { // IE 11 => return version number var rv = ua.indexOf('rv:'); return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10); } var edge = ua.indexOf('Edge/'); if (edge > 0) { // Edge (IE 12+) => return version number return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10); } // other browser return false; }
@import url(https://fonts.googleapis.com/css?family=Fira+Mono|Fira+Sans:300); body { color: black; background-color: white; font-family: "Fira Sans", sans-serif; font-weight: 300; margin: 0; padding: 3rem; } h1 { color: darkgrey; text-align: center; font-weight: 300; font-size: 1.5rem; line-height: 2rem; } h2 { text-align: center; font-weight: 300; font-size: 4rem; } p { color: darkgrey; text-align: center; font-family: "Fira Mono", monospace; font-size: 1rem; line-height: 1.5rem; }
<h1>Detect IE/Edge version with JavaScript.<br> Updated to recognize Internet Explorer 12+ aka Edge.</h1> <h2 id="result">detecting…</h2> <p id="details">n/a</p>