[英]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.