【问题标题】:Is it possible to make a dom attribute readonly?是否可以将 dom 属性设为只读?
【发布时间】: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


【解决方案1】:

使用反映该名称的自定义事件而不是 属性:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 2013-05-24
    相关资源
    最近更新 更多