哪个HTMLElement属性更改会生成DOMAttrModified?

时间:2012-03-29 05:31:38

标签: firefox mutation-events

我对DOMAttrModified有疑问。对HTML元素属性的哪些更改会触发DOMAttrModified事件(特别感兴趣的是Firefox,但适用于其他浏览器的答案也可能就足够了)?

我有以下测试用例:

        var elem = document.createElement('input');
        document.body.appendChild(elem);

        elem.id    = 'inputId';      // triggers DOMAttrModified
        elem.type  = 'text';         // triggers DOMAttrModified
        elem.value = 'inputValue';   // DOES NOT trigger DOMAttrModified
        elem.lang  = 'en';           // triggers DOMAttrModified

如果我将elem.value更改为elem.defaultValue,则会触发DOMAttrModified。某处有完整的清单吗?到目前为止,我发现HTMLInputElement的'value'和'checked'以及HTMLOptionElement的'selected'属性并没有触发DOMAttrModified。还有其他吗?

DOMAttrModified visual attributes的答案似乎并不完全正确,因为'value'也是一个属性。

谢谢, 苏尼

2 个答案:

答案 0 :(得分:3)

DOM value属性不会更改HTML value标记属性。 DOM defaultValue可以。标记属性发生更改时会触发DOMAttrModified,因此setAttribute / removeAttribute次调用以及更改属性的任何属性集都会触发。

答案 1 :(得分:3)

请注意,设置'disabled'属性时,不会触发任何DOMAttrModified事件。因此,如果您的活动没有解雇,那可能就是原因。这也适用于仅限IE的“onPropertyChange”事件。