我如何才能只使用JavaScript定位Internet Explorer 11?

什么是最容易出错的方式来瞄准IE11的JavaScript?

注意:这只能用于分析或通知用户使用的浏览器。 对于其他一切,都有function检测。

IE 11的用户代理string目前是这样一个:

Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko 

Windows 10例子:

 Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko 

这意味着你可以简单地testing版本11.xx,

 var isIE11 = /Trident.*rv[ :]*11\./.test(navigator.userAgent); 

由于IE10的用户代理

 Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0) 

也许现在可以肯定,现在Trident/X应该是真正的版本。

IE11保持“三叉戟”在它的UAstring,但下降MSIE。 一个简单的方法来检测浏览器是IE11或以上(IE12,IE13等)是:

 var isAtLeastIE11 = !!(navigator.userAgent.match(/Trident/) && !navigator.userAgent.match(/MSIE/)); 

如果你只是想IE11(你不希望未来版本的IE匹配),请执行以下操作:

 var isIE11 = !!(navigator.userAgent.match(/Trident/) && navigator.userAgent.match(/rv[ :]11/)); 
 var isIE11 = !!navigator.userAgent.match(/Trident\/7.0; rv 11/); 

资料来源: http : //www.nczonline.net/blog/2013/07/02/internet-explorer-11-dont-call-me-ie/

尝试这个,

 navigator.sayswho= (function(){ var N= navigator.appName, ua= navigator.userAgent, tem; var M= ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i); if(M && (tem= ua.match(/version\/([\.\d]+)/i))!= null) M[2]= tem[1]; M= M? [M[1], M[2]]: [N, navigator.appVersion,'-?']; return M; })(); 

来自浏览器检测在JavaScript中?

更新为IE = 11

用这个

 var isIE11 = navigator.userAgent.match(/Trident\/7.0; rv 11.0/); 

阅读http://msdn.microsoft.com/en-us/library/ie/bg182625%28v=vs.85%29.aspx

我使用以下模式来定位所有IE浏览器。 如果你只需要IE 11,你可以缩短它。

  /msie|trident|edge/g.test(navigator.userAgent.toLowerCase()); 

祝你好运!

弗雷德里克

这将设置ie IE的版本,如果没有,则为0。 它将在1到11之间工作,但如果微软放弃了Trident引擎,可能无法检测到未来的版本。

 var ie = 0; try { ie = navigator.userAgent.match( /(MSIE |Trident.*rv[ :])([0-9]+)/ )[ 2 ]; } catch(e){} 

您也可能对我的相关,更详细的答案感兴趣。