【发布时间】:2013-02-07 01:19:17
【问题描述】:
目前在我的一个项目中,我正在劫持一个 div 的 appendChild 方法并将其代理给我自己的一个。这一切正常,但是在劫持它之后 appendChild 属性出现在 dom 中,这种行为只发生在 IE7/IE8 中。在使用了开发人员工具后,我注意到如果您单击“显示只读属性”,您可以看到所有 HTMLDivElement 原型的函数,但已修改的函数不再被视为只读。我的问题是,是否可以再次将被视为 dom 元素属性的函数设为只读?同样对于奖励积分,如果我可以像刚才那样继续并覆盖该功能,那么首先那个 readonly 标志有什么意义?
也只是为了确保我能理解它,我只在 IE7 和 IE8 中看到这种行为。
示例:
<div id="element1">
</div>
var domElement = document.getElementById('element1');
domElement['appendChild'] = function newAppendChild() {....}
但 div 现在在 dom 中显示为
<div id="element1" appendChild="function newAppendChild() {...}"></div>
最终目标是不再显示 appendChild。
【问题讨论】:
-
你能发布一个演示吗?我无法想象这种情况......
-
你真正想解决什么问题?在我看来,当您可能有更好的方法来解决您要解决的实际问题时,您似乎在替换内置方法并尝试将其设为只读时陷入困境。
标签: javascript dom internet-explorer-8 internet-explorer-7