How can I target only Internet Explorer 11 with JavaScript?

JavascriptInternet ExplorerBrowserInternet Explorer-11

Javascript Problem Overview


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're using. For everything else, there's feature detection.

Javascript Solutions


Solution 1 - Javascript

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.

Solution 2 - Javascript

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/));

Solution 3 - Javascript

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

Source: http://www.nczonline.net/blog/2013/07/02/internet-explorer-11-dont-call-me-ie/

Solution 4 - Javascript

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 https://stackoverflow.com/questions/17907445/how-to-detect-ie11/30907476#30907476">here</a>;.

Solution 5 - Javascript

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

Solution 6 - Javascript

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>

Solution 7 - Javascript

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 https://stackoverflow.com/questions/2400935/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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questiondave1010View Question on Stackoverflow
Solution 1 - JavascriptDenys SéguretView Answer on Stackoverflow
Solution 2 - Javascriptdave1010View Answer on Stackoverflow
Solution 3 - JavascriptFlorian MargaineView Answer on Stackoverflow
Solution 4 - JavascriptBeejorView Answer on Stackoverflow
Solution 5 - JavascriptFredrik BorggrenView Answer on Stackoverflow
Solution 6 - Javascriptbaisakhi chauhanView Answer on Stackoverflow
Solution 7 - JavascriptRohan KumarView Answer on Stackoverflow