DOMAttrModified不会触发

Cha*_*l72 2 javascript firefox events dom javascript-events

我试图在脚本修改input元素(文本字段)时触发事件处理程序.在Internet Explorer上,我可以使用该onpropertychange事件,但在Firefox和其他浏览器上没有此类事件.因此,根据W3C文档,似乎DOMAttrModified事件完全符合我的要求.但它没有开火Firefox 11.

这是一个简单的代码片段,可以重现问题.我有一个输入文本字段,以及一个将字符添加到value输入文本字段的属性的按钮.单击该add char按钮应该导致DOMAttrModified事件触发:

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript">
            function addChar() {
                var q = document.getElementById("query");
                q.value += "X";
            }

            function loadevents() {
                var q = document.getElementById("query");
                q.addEventListener("DOMAttrModified", function() {alert("DOMAttrModified event!");
                }, false);
            }
        </script>
    </head>
    <body onLoad="loadevents()">
        <input type="text" id="query">
        <br>
        <input type="submit" value="add char" onclick="addChar()">
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

但事实并非如此.知道我做错了什么吗?(我知道DOM Level 3 不赞成这个事件,但现在似乎没有可行的替代方案.据我所知,Firefox 11仍然支持它.)

gdo*_*ica 7

更改输入中的值不会触发DOMAttrModified事件,这就是全部..

您需要更改的属性输入节点的,而不是财产的变量.
这就像两个jQuery函数之间区别:.prop.attr

读: