2014-02-19 41 views
7

當我嘗試在IE11中使用Ext.isIE時,我得到的返回值爲false。然後在調試過程中我的代碼,我看到,我得到以下錯誤: JavaScript錯誤 - 消息:無效的參數, 我的ExtJS的版本是:4,2Ext.isIE在IE 11中返回false

+0

當我讀到這個問題時,我想IE再次做了...... LOL! –

回答

11

IE 11不正式的ExtJS 4.2之前的支持。 2(見財產isIE11)。 Microsoft從IE11的用戶代理中刪除了MSIE部分(請參閱here),這是它不能在ExtJS 4.2.1及更低版本中使用的原因。

從源代碼,爲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/), 

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

這個工作對我來說:

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

1

這很簡單:如果它是一個IE11瀏覽器

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

將返回true。