我想要檢測輸入字段中的文本/值更改的時間。因此,我閱讀了大量示例並嘗試了以下代碼,但它不起作用。其中有fiddle preview .even if我通過js代碼更改了值,我想要檢測這些更改。JavaScript使用MutationObserver來檢測輸入標記中的值更改
HTML
<input type="text" id="exNumber"/>
的JavaScript
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
// console.log('Mutation type: ' + mutation.type);
if (mutation.type == 'childList') {
if (mutation.addedNodes.length >= 1) {
if (mutation.addedNodes[0].nodeName != '#text') {
// console.log('Added ' + mutation.addedNodes[0].tagName + ' tag.');
}
}
else if (mutation.removedNodes.length >= 1) {
// console.log('Removed ' + mutation.removedNodes[0].tagName + ' tag.')
}
}
if (mutation.type == 'attributes') {
console.log('Modified ' + mutation.attributeName + ' attribute.')
}
});
});
var observerConfig = {
attributes: true,
childList: false,
characterData: false
};
// Listen to all changes to body and child nodes
var targetNode = document.getElementById("exNumber");
observer.observe(targetNode, observerConfig);
'onkeyup'對我的case.actually沒有用,因爲某些原因我無法修改外部腳本。腳本更改輸入字段的值。因此,我想要檢測文本何時更改 –
在這種情況下,請選中[this other one](http://stackoverflow.com/q/1948332/5247200)。 – David
tnx david所以唯一的醜陋解決方案是使用計時器。我不希望這就是爲什麼我試圖觀察員。但不幸的是,可能沒有其他方式做到這一點 –