Ext.isIE returns false in IE 11

When I try to use Ext.isIE in IE11, I get a false return value. And then while debugging my code, I see that I get the following error: JavaScript error - Msg: Invalid argument., My version of extjs: 4.2

+8
extjs
source share
3 answers

IE 11 is not officially supported until ExtJS 4.2.2 (see property isIE11 ). Microsoft removed the MSIE part from the IE11 user agent (see here ), which is why it does not work with ExtJS 4.2.1 and lower.

From the source code for ExtJS 4.2.1 :

 isIE = !isOpera && check(/msie/), isIE7 = isIE && ((check(/msie 7/) && docMode != 8 && docMode != 9 && docMode != 10) || docMode == 7), isIE8 = isIE && ((check(/msie 8/) && docMode != 7 && docMode != 9 && docMode != 10) || docMode == 8), isIE9 = isIE && ((check(/msie 9/) && docMode != 7 && docMode != 8 && docMode != 10) || docMode == 9), isIE10 = isIE && ((check(/msie 10/) && docMode != 7 && docMode != 8 && docMode != 9) || docMode == 10), isIE6 = isIE && check(/msie 6/), 

and for ExtJS 4.2.2 :

 isIE = !isOpera && (check(/msie/) || check(/trident/)), isIE7 = isIE && ((check(/msie 7/) && docMode != 8 && docMode != 9 && docMode != 10) || docMode == 7), isIE8 = isIE && ((check(/msie 8/) && docMode != 7 && docMode != 9 && docMode != 10) || docMode == 8), isIE9 = isIE && ((check(/msie 9/) && docMode != 7 && docMode != 8 && docMode != 10) || docMode == 9), isIE10 = isIE && ((check(/msie 10/) && docMode != 7 && docMode != 8 && docMode != 9) || docMode == 10), isIE11 = isIE && ((check(/trident\/7\.0/) && docMode != 7 && docMode != 8 && docMode != 9 && docMode != 10) || docMode == 11), isIE6 = isIE && check(/msie 6/), 
+11
source share

It is very simple:

 navigator.userAgent.toLowerCase().lastIndexOf('rv:11') > -1 

will return true if it is an IE11 browser.

+2
source share

This works for me:

var isIE11 = window.location.hash = !! window.MSInputMethodContext;

+1
source share

All Articles