How can I detect Internet Explorer (IE) and Microsoft Edge using JavaScript?

前端 未结 13 962
小鲜肉
小鲜肉 2020-11-30 02:57

I\'ve looked around a lot, and I understand that there\'s a lot of ways to detect internet explorer.

My problem is this: I have an area on my HTML document, that when

13条回答
  •  心在旅途
    2020-11-30 03:15

    I don't know why, but I'm not seeing "Edge" in the userAgent like everyone else is talking about, so I had to take another route that may help some people.

    Instead of looking at the navigator.userAgent, I looked at navigator.appName to distinguish if it was IE<=10 or IE11 and Edge. IE11 and Edge use the appName of "Netscape", while every other iteration uses "Microsoft Internet Explorer".

    After we determine that the browser is either IE11 or Edge, I then looked to navigator.appVersion. I noticed that in IE11 the string was rather long with a lot of information inside of it. I arbitrarily picked out the word "Trident", which is definitely not in the navigator.appVersion for Edge. Testing for this word allowed me to distinguish the two.

    Below is a function that will return a numerical value of which Internet Explorer the user is on. If on Microsoft Edge it returns the number 12.

    Good luck and I hope this helps!

    function Check_Version(){
        var rv = -1; // Return value assumes failure.
    
        if (navigator.appName == 'Microsoft Internet Explorer'){
    
           var ua = navigator.userAgent,
               re  = new RegExp("MSIE ([0-9]{1,}[\\.0-9]{0,})");
    
           if (re.exec(ua) !== null){
             rv = parseFloat( RegExp.$1 );
           }
        }
        else if(navigator.appName == "Netscape"){                       
           /// in IE 11 the navigator.appVersion says 'trident'
           /// in Edge the navigator.appVersion does not say trident
           if(navigator.appVersion.indexOf('Trident') === -1) rv = 12;
           else rv = 11;
        }       
    
        return rv;          
    }
    

提交回复
热议问题