跨浏览器JavaScript输入实时更改/粘贴检测

是否有跨浏览器方式来检测输入字段的实时更改

通过现场 ,我的意思不是当场失去焦点,而不是在下一个按键时,等等。 马上或类似的东西。

使用jQuery和.change() .keyup() .change() .keyup() .bind('paste')等组合我可以在某些浏览器中进行实时更改检测,但不是全部 。 使用不同的组合将使其在其他浏览器中有所作为。

棘手的工作是鼠标操作输入字段 – 选择文本并移动它(基本上是剪切和粘贴),右键单击和粘贴或剪切等等。出于某种原因甚至.mousedown().mouseup()似乎没有削减它。

我现在能想到的唯一跨浏览器解决方案是每隔100毫秒检查输入字段值 ,并将值与存储值进行比较。 但是,当基于事件的解决方案如此接近时, 这似乎有些过分

是否有一个jQuery插件可以做到这一点? 或者还有其他方法可以实现这一目标吗?

要完成更改和键处理程序,您可以添加用于剪切/复制/粘贴的处理程序。 它们适用于Firefox> = 3,IE,Safari和Chrome(但不适用于Opera / Konqueror)。

这会涵盖您用例的所有内容吗?

根据您需要支持的浏览器,您可以使用HTML5的oninput 。
当监视的输入发生变化时,它会立即触发。 在jQuery中你只需要:

 $('#my-input').bind('input', function(e) { console.log("#my-input's value changed"); });