9

IE 固有の Web サイトを他のブラウザーに適応させる作業を行っています。たとえば、onpropertychange は広く使用されており、MutationObserver を使用してその動作をエミュレートしています。

ただし、プログラムによる変更でもユーザー入力でも、input=text フィールドへの値の変更に MutationObserver を反応させることはできません。

検討:

<input type="text" name="test1" id="test1" />

var config = { attributes: true, childList: true, characterData: true, subtree: true };
var observer = new MutationObserver(function() { alert('success'); } );
observer.observe(document.getElementById('test1'), config);

document.getElementById('test1').value = 'something' またはキーボード入力で値を変更しようとしても、何も起こりません。

ただし、ID や名前 (JavaScript による) など、要素に関する他の何かを変更しようとすると、MutationObserver が起動します。

値の変更と MutationObserver は、他の入力タイプ、非表示フィールドの値を持つイベントで正常に機能します。

この動作はブラウザ間で一貫しています。

テキストフィールドの値の変化を観察する方法を知っている人はいますか? それとも、これとは異なる方法でアプローチする必要がありますか?

4

2 に答える 2

0

jQuery onkey 関数を使用できます。

<input type="text" name="test1" id="test1" /><br>


 $("#test1").keydown(function(){
 console.log('pressed')
})
于 2020-01-02T09:55:05.053 に答える