当脚本修改元素(文本字段)时,我试图触发事件处理程序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>
但事实并非如此。知道我做错了什么吗?(我知道 DOM Level 3已弃用此事件,但目前似乎没有可行的替代方案。据我所知,Firefox 11 仍然支持它。)