检查IE 10

如果用户使用IE 10,如何在页面加载时显示消息框?

function ieMessage() { alert("Hello you are using IE10"); } 

我的网页是一个JSF facelet(XHTML)。

在没有条件注释和没有用户代理嗅探的情况下,检测这种情况的真正方法是使用条件编译:

 <script type="text/javascript"> var isIE10 = false; /*@cc_on if (/^10/.test(@_jscript_version)) { isIE10 = true; } @*/ console.log(isIE10); </script> 

运行这段代码之后,你可以随时使用下面的代码:

 if (isIE10) { // Using Internet Explorer 10 } 

参考: 当浏览器模式为IE9时,如何从JS中检测IE10?


更新:

为了避免评论的缩小,你可以使用像这样的东西:

 var IE = (function () { "use strict"; var ret, isTheBrowser, actualVersion, jscriptMap, jscriptVersion; isTheBrowser = false; jscriptMap = { "5.5": "5.5", "5.6": "6", "5.7": "7", "5.8": "8", "9": "9", "10": "10" }; jscriptVersion = new Function("/*@cc_on return @_jscript_version; @*/")(); if (jscriptVersion !== undefined) { isTheBrowser = true; actualVersion = jscriptMap[jscriptVersion]; } ret = { isTheBrowser: isTheBrowser, actualVersion: actualVersion }; return ret; }()); 

并访问像IE.isTheBrowserIE.actualVersion (这是从JScript版本的内部值翻译)属性。

一般来说,用户代理嗅探和条件编译/注释的做法是最好的避免。 使用特征检测 , 优雅的降级和渐进式增强是更好的select。 但是,对于开发人员检测浏览器版本更方便的几个边缘情况,可以使用以下代码片段:

这个if语句只能在IE 10上执行

 // IF THE BROWSER IS INTERNET EXPLORER 10 if (navigator.appVersion.indexOf("MSIE 10") !== -1) { window.alert('This is IE 10'); } 

这个if语句只会在IE 11上执行

 // IF THE BROWSER IS INTERNET EXPLORER 11 var UAString = navigator.userAgent; if (UAString.indexOf("Trident") !== -1 && UAString.indexOf("rv:11") !== -1) { window.alert('This is IE 11'); } 

http://jsfiddle.net/Qz97n/

以下是获取当前IE或IE版本的方法:

 function IE(v) { return RegExp('msie' + (!isNaN(v)?('\\s'+v):''), 'i').test(navigator.userAgent); } 

以下是您可以如何使用它的方法:

 if(IE()) alert('Internet Explorer!'); if(IE(10)) alert('Internet Explorer 10!');