我试图破坏IE上的Extjs 3.1.1窗口时遇到此问题。错误说:
它适用于其他浏览器。
此方法引发了异常: Ext.element:insertAfter()
堆栈跟踪类似于this closed thread
组件层次结构如下所示(某些组件已扩展):
window > panel > EditorGrid > FormPanel > Combobox
答案 0 :(得分:1)
这个补丁解决了我的问题。它只是覆盖了在调用其方法之前添加parentNode
检查的函数。我将此代码段添加到Extjs之后运行的fixes.js文件中。
Ext.override(Ext.Element, {
/**
* Inserts this element after the passed element in the DOM
* @param {Mixed} el The element to insert after
* @return {Ext.Element} this
*
* @overrides to fix IE issue of "parentNode null or not an object".
*/
insertAfter: function(el){
el = Ext.getDom(el);
if (el && el.parentNode) {
el.parentNode.insertBefore(this.dom, el.nextSibling);
}
return this;
}
});
请注意,理想情况下我应该调查element
parentNode
为何为空,但此修复对我来说已经足够了。可能其中一个扩展元素是在窗口被破坏之前销毁子项。