我在最新版本的Chrome中使用Object.observe,並在想爲什麼它不適用於文本輸入的'value'屬性。下面的代碼會記錄添加/更改'foo'屬性的更改,但不會更改值屬性。任何人都知道爲什麼?爲什麼object.observe不能用於輸入字段的value屬性?
var myTextInput = document.getElementById('myTextInput');
Object.observe(myTextInput, function(changes){
changes.forEach(function(change) {
console.log(change);
});
});
myTextInput.value = 'test123';
myTextInput.foo = 'bar';
也許是因爲DOM節點是主機對象,基本上可以做任何他們想要的(種類)。還要注意'Object.observe'是ES7的一部分,是高度實驗性的,並沒有最終確定。 – 2014-08-31 19:21:00
'.value' DOM屬性是作爲getter/setter afair實現的,因此它不會真正改變。 – Bergi 2014-09-01 10:29:10
@Bergi這似乎是可能的。 MutationObservers也可能不會提取輸入的值屬性,原因可能相同。我想知道如何存儲價值。 – user2054105 2014-09-01 10:48:29