Wenn ich versuche, Ext.isIE in IE11 zu verwenden, bekomme ich den Rückgabewert false. Und dann während des Debug meinen Code Ich sehe, dass ich die folgende Fehlermeldung erhalten: JavaScript-Fehler - Msg:. Invalid argument, meine extjs Version ist: 4,2Ext.isIE gibt false in IE 11
7
A
Antwort
11
IE 11 nicht offiziell vor unterstützt ExtJS 4.2. 2 (siehe Eigenschaft isIE11
). Microsoft hat den MSIE
-Teil aus dem User-Agent des IE11 entfernt (siehe here), weshalb er mit ExtJS 4.2.1 und niedriger nicht funktioniert.
Aus dem Quellcode für 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/),
und für 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/),
1
Dies funktioniert für mich:
var isIE11 = = window.location.hash !! window.MSInputMethodContext;
1
Es ist sehr einfach:
navigator.userAgent.toLowerCase().lastIndexOf('rv:11') > -1
wahr zurück, wenn es sich um ein IE11 Browser ist.
Als ich die Frage gelesen habe, dachte ich, IE hat es wieder getan ... LOL! –