2009-12-13 4 views
0

안녕하세요, Ext-js의 탭에 양식을 동적으로 추가하려고합니다. (탭이 이미 렌더링되었습니다). fyi, 나는 Ext 2.2를 사용하고있다.IE 8의 ext js - el.ownerDocument.createRange() 오류

오류가 때 tab.add 기능 중에 발생 예 :

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

나는

range = el.ownerDocument.createRange(); 

입니다 EXT-모든 debug.js 라인 247에이 오류가 오류는 (개체가이 속성 또는 메서드를 지원하지 않습니다.)

Firefox에서 제대로 작동하지만 IE8에서는 중단됩니다. 누구나이를 해결할 수있는 방법을 알고 있습니까?

감사합니다.

답변

0

이것은 ExtJS 2.2 및 IE와 관련된 문제점과 매우 유사합니다.

그것은 당신이 같은 코드를 볼 수있는 내선 코드에 많은 장소처럼 보인다 :

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

때 실제로 IE에서 작동하지 않습니다 "때문에 this.tr.childNodes ([0]) "는 아직 존재하지 않습니다.

내 해결 방법은 this.tr.childNodes ([0])의 존재 여부를 확인하기 위해 프로토 타입 (내 경우 Ext.Toolbar의 insertButton())을 덮어 쓰거나 다른 함수를 사용하거나 작성하지 않은 경우 작성하는 것이 었습니다 존재하지 않습니다.

나는이 문제가 당신이 가고있는 문제라고 생각한다.

+0

감사합니다. Eric, 해결책을 찾았 기 때문에이 방법을 시도하지는 않았지만 응답에 감사드립니다. :) – 29er

0

그래서 나를위한 해결책이있는 오래된 문자열을 발견했습니다. 내가 하나가 완전히 속성을 꺼내서 한 번

html: ' ',

또는 내가

html: '<span></span>' 
변경 : 내가 빈 탭을 인스턴스화 할 때 기본적으로 http://www.extjs.com/forum/showthread.php?t=7912&highlight=createRange

는, 나는 내 HTML 속성이 설정 한

중단되었습니다.

감사

0

IE (도 8)는 document.createRange() 메서드를 지원하지 않습니다.

var supportsDOMRanges = document.implementation.hasFeature("Range", "2.0"); 브라우저에서 표준 당 DOM 범위를 지원하는지 확인할 수 있습니다.