9

我见过突变观察者在修改doms时用于获取doms的属性,例如使用google chrome开发者工具。textarea但是,当由于用户键入或粘贴而导致文本更改时,我无法找到如何调用函数。在我的代码中,当用户键入回调时,即使所有观察选项都设置为 true,也不会调用回调。这个代码是什么?

4

2 回答 2

11

变异观察者监听 DOM 的变化。然而,表单元素的当前状态并没有被 DOM 反映。

例如,创建一个输入元素input而不设置 value 属性。在输入字段中输入文本时,input.value 会反映此文本。另一方面,input.getAttribute('value')仍然返回null

因此,突变观察者无法观察到表单字段状态的这种变化。

(提议的 ECMAScript 第 6 版的 Object.observe 也无济于事。虽然在最近的 Chrome 版本中可以监听宿主对象的变化,但没有观察到宿主对象属性的变化,如上面的输入值。)

于 2013-02-19T13:03:16.260 回答
0

请参阅此链接Textarea onchange detection。您将需要编写 onkeyup 和 onchange 函数。

顺便说一句,上面的答案不适用于输入法。我的解决方案是setInterval检测文本是否每 50 毫秒更改一次。

于 2012-08-21T05:11:52.613 回答