2009-12-13 1 views
0

HI, Я пытаюсь динамически добавлять форму на вкладку Ext-js. (вкладка уже отображена). fyi, я использую я использую Ext 2.2.ext js - el.ownerDocument.createRange() ошибки в IE 8

ошибка возникает, когда во время функции tab.add: т.е.

function tabactivate(tab) {  
      var newItem= new Ext.FormPanel(.....);    
      **tab.add(newItem)**; //ERRORS HERE  
      tab.doLayout();    
} 

Я получаю эту ошибку в строке 247 Ext-все-debug.js , который

range = el.ownerDocument.createRange(); 

ошибка (Object не поддерживает это свойство или метод.)

Это прекрасно работает в Firefox, но ломается в IE8. Кто-нибудь знает обходное решение для этого?

Благодаря

ответ

0

Это звучит очень похоже на вопрос, я имел с ExtJS 2.2 и IE.

Похоже, что много мест в коде Ext, которые вы видите код, как это:

var td = document.createElement("td"); 
this.tr.insertBefore(td, this.tr.childNodes[index]); 

Когда в том, что не работает в IE, потому что «this.tr.childNodes ([0]) "еще не существует.

Моим обходным путем было переопределить прототип (в моем случае insertButton() в Ext.Toolbar), чтобы проверить существование this.tr.childNodes ([0]), используя другую функцию или создав ее, если она не существует.

Я надеюсь, что я прав, что это проблема, с которой вы сталкиваетесь.

+0

Спасибо Эрик, потому что я нашел решение, я не пробовал это, но я ценю ответ :) – 29er

0

Так что я нашел старую струну, у которой было решение для меня. http://www.extjs.com/forum/showthread.php?t=7912&highlight=createRange

По сути, когда я был инстанцировании пустые вкладки, я имел мой HTML набор свойств для этого:

html: ' ',

когда я либо взял имущество полностью или я изменил к

html: '<span></span>' 

он прекратил ломать.

Благодаря

0

IE (даже 8) не поддерживает метод document.createRange().

Вы можете попробовать var supportsDOMRanges = document.implementation.hasFeature("Range", "2.0");, чтобы узнать, поддерживает ли браузер диапазоны DOM по стандарту.