スクリプトが要素 (テキスト フィールド) を変更するときにイベント ハンドラーをトリガーしようとしています。Internet input
Explorer ではonpropertychange
イベントを使用できますが、Firefox やその他のブラウザーではそのようなイベントはありません。したがって、W3C docsによると、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 はまだサポートしています。)