【发布时间】:2012-08-16 10:21:37
【问题描述】:
我见过变异观察者在修改doms时用于获取doms的属性,例如使用google chrome开发者工具。但是,当textarea 中的文本由于用户键入或粘贴而发生更改时,我无法找到如何调用函数。在我的代码中,当用户键入回调时,即使所有观察选项都设置为 true,也不会调用回调。这是什么代码?
【问题讨论】:
标签: javascript mutation-observers
我见过变异观察者在修改doms时用于获取doms的属性,例如使用google chrome开发者工具。但是,当textarea 中的文本由于用户键入或粘贴而发生更改时,我无法找到如何调用函数。在我的代码中,当用户键入回调时,即使所有观察选项都设置为 true,也不会调用回调。这是什么代码?
【问题讨论】:
标签: javascript mutation-observers
查看此链接Textarea onchange detection。您需要编写 onkeyup 和 onchange 函数。
顺便说一句,上面的答案不适用于输入法。我的解决方案是setInterval 来检测文本是否每 50 毫秒更改一次。
【讨论】:
变异观察者监听 DOM 的变化。然而,表单元素的当前状态不会被 DOM 反映。
例如,在不设置 value 属性的情况下创建一个输入元素 input。在输入字段中输入文本时,input.value 会反映此文本。另一方面,input.getAttribute('value') 仍然返回 null。
因此,突变观察者无法观察到表单字段状态的这种变化。
(提出的 ECMAScript 第 6 版的 Object.observe 也无济于事。尽管在最近的 Chrome 版本中可以监听宿主对象的变化,但 value 的宿主对象属性的变化em>输入上面没有被观察到。)
【讨论】: