How can I target only Internet Explorer 11 with JavaScript?

后端 未结 7 2305
一个人的身影
一个人的身影 2020-11-27 03:23

What\'s the least error-prone way to target just IE11 with JavaScript?

Note: This should really only be done for analytics or informing the user what browser they\'r

相关标签:
7条回答
  • 2020-11-27 03:33

    This will set ie to the version of IE, or 0 if none. It'll work for 1 through 11, but may not detect future versions if Microsoft drops the Trident engine.

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

    You may also be interested in my related, more detailed answer here.

    0 讨论(0)
  • 2020-11-27 03:38

    I use the following pattern to target all IE browsers. You can short it down if you only need IE 11.

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

    Good luck!

    Fredrik

    0 讨论(0)
  • 2020-11-27 03:39

    Try this,

    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;
    })();
    

    Source from Browser detection in JavaScript?

    Updated for IE=11

    Use this

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

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

    0 讨论(0)
  • 2020-11-27 03:41

    IE11 keeps "Trident" in it's UA string, but drops MSIE. A simple way to detect the browser is IE11 or above (IE12, IE13, etc) is:

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

    If you want just IE11 (and you don't want future versions of IE to match), do this:

    var isIE11 = !!(navigator.userAgent.match(/Trident/) && navigator.userAgent.match(/rv[ :]11/));
    
    0 讨论(0)
  • 2020-11-27 03:44

    Here's a script you can use to detect any browser:

    <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>
    
    0 讨论(0)
  • 2020-11-27 03:46

    The User-agent string for IE 11 is currently this one :

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

    Windows 10 example:

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

    Which means your can simply test, for versions 11.xx,

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

    As IE10 user agent was

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

    it's probably also safe to bet on the fact that now Trident/X is supposed to be the real versionning.

    0 讨论(0)
提交回复
热议问题