如何仅使用JavaScript定位Internet Explorer 11?

使用JavaScript将IE11作为目标的最不容易出错的方法是什么?

注意:这实际上仅应用于分析或通知用户他们使用的浏览器。 对于其他所有功能,都有功能检测。

7个解决方案
85 votes

IE 11的用户代理字符串当前为:

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

这意味着您只需针对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应该是真正的版本控制这一事实,这也可以肯定。

Denys Séguret answered 2019-11-18T17:59:48Z
26 votes

IE11在其UA字符串中保留“ Trident”,但删除了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/));
dave1010 answered 2019-11-18T18:00:18Z
4 votes
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/]

Florian Margaine answered 2019-11-18T18:00:42Z
3 votes

我使用以下模式定位所有IE浏览器。 如果只需要IE 11,则可以将其简化。

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

祝好运!

弗雷德里克

Fredrik Borggren answered 2019-11-18T18:01:13Z
2 votes

试试这个,

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]

Rohan Kumar answered 2019-11-18T18:01:52Z
2 votes

这会将ie设置为IE的版本,如果没有,则设置为0。 它适用于1到11,但如果Microsoft放弃Trident引擎,则可能无法检测到将来的版本。

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

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

Beejor answered 2019-11-18T18:02:22Z
1 votes

这是一个可以用来检测任何浏览器的脚本:

<script>

  // Opera
  var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;

  // Firefox 1.0+
  var isFirefox = typeof InstallTrigger !== 'undefined';

  // Safari 3.0+ "[object HTMLElementConstructor]" 
  var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || safari.pushNotification);

  // Internet Explorer 6-11
  var isIE = /*@cc_on!@*/false || !!document.documentMode;

  // Edge 20+
  var isEdge = !isIE && !!window.StyleMedia;

  // Chrome 1+
  var isChrome = !!window.chrome && !!window.chrome.webstore;

  // Blink engine detection
  var isBlink = (isChrome || isOpera) && !!window.CSS;

  if (isFirefox==true) {
    alert(isFirefox)
    $('.container-fluid').css({"overflow-y":"auto","height":"150%"});  
  }

</script>
baisakhi chauhan answered 2019-11-18T18:02:46Z
translate from https://stackoverflow.com:/questions/17447373/how-can-i-target-only-internet-explorer-11-with-javascript