如何解决 IE 问题“parentNode”为空或不是 Ext.js3.1.1 的对象?
Posted
技术标签:
【中文标题】如何解决 IE 问题“parentNode”为空或不是 Ext.js3.1.1 的对象?【英文标题】:How to fix the IE issue 'parentNode' is null or not an object with Ext.js3.1.1? 【发布时间】:2014-05-22 01:24:07 【问题描述】:我在试图破坏 IE 上的 Extjs 3.1.1 窗口时遇到了这个问题。错误说:
在 IE8 上:'parentNode' 为 null 或不是对象 在 IE9 上:SCRIPT5007:无法获取属性“insertBefore”的值:对象为空或未定义 ext-all-debug.js,第 5533 行字符 10它适用于其他浏览器。
此方法引发异常: Ext.element:insertAfter()
并且堆栈跟踪类似于this closed thread
组件层次结构如下所示(一些组件被扩展):
window > panel > EditorGrid > FormPanel > Combobox
【问题讨论】:
【参考方案1】:这个补丁修复了我的问题。它只是在调用其方法之前覆盖添加检查parentNode
的函数。我将此代码 sn-p 添加到在 Extjs 之后运行的 fixs.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
为空,但这个修复对我来说已经足够好了。可能其中一个扩展元素正在销毁窗口之前销毁子项。
【讨论】:
在我看来这是库中的一个错误,元素不一定有父元素(例如文档元素)。 可能。 API for Ext.Element class 没有具体说明parentNode
。以上是关于如何解决 IE 问题“parentNode”为空或不是 Ext.js3.1.1 的对象?的主要内容,如果未能解决你的问题,请参考以下文章
IE9 JavaScript 错误:SCRIPT5007:无法获取属性“ui”的值:对象为空或未定义
当我说可以为空或为空时,我不断收到“db context null”,我该如何解决?
highcharts的饼图在IE浏览器上无法显示,提示‘undefined'为空或不是对象,其他的游览器都可正常显示