簡體   English   中英

ext js-IE 8中的el.ownerDocument.createRange()錯誤

[英]ext js - el.ownerDocument.createRange() errors in IE 8

嗨,我正在嘗試動態地將表單添加到Ext-js的選項卡中。 (選項卡已經渲染)。 僅供參考,我正在使用Ext 2.2。

在tab.add函數期間發生錯誤:即:

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

我在ext-all-debug.js的第247行收到此錯誤,這是

range = el.ownerDocument.createRange();

錯誤是(對象不支持此屬性或方法。)

這在Firefox中工作正常,但在IE8中中斷。 有誰知道解決方法?

謝謝

這聽起來與我在ExtJS 2.2和IE中遇到的問題非常相似。

在Ext代碼中似乎有很多地方,您看到的代碼是這樣的:

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

實際上,由於“ this.tr.childNodes([0])”尚不存在而無法在IE上運行時。

我的解決方法是重寫原型(在我的情況下為Ext.Toolbar中的insertButton()),以使用不同的函數檢查this.tr.childNodes([0])是否存在,如果不存在則創建它。

我希望這是您遇到的問題是正確的。

因此,我找到了一個舊的弦,可以為我解決。 http://www.extjs.com/forum/showthread.php?t=7912&highlight=createRange

本質上,當我實例化空白標簽時,我將html屬性設置為此:

html: ' '

一旦我把財產完全拿走或者我改成了

html: '<span></span>'

它停止了斷裂。

謝謝

IE(甚至8)不支持document.createRange()方法。

您可以嘗試var supportsDOMRanges = document.implementation.hasFeature("Range", "2.0"); 查看瀏覽器是否根據標准支持DOM范圍。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM