繁体   English   中英

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

[英]Cross-browser JavaScript input live change/paste detection

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

通过live ,我的意思不是当字段失去焦点时,而不是在下一次按键时,等等。 立即或类似的东西。

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

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

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

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

要完成更改和键处理程序,您可以为cut/copy/paste添加处理程序。 它们适用于 Firefox >=3、IE、Safari 和 Chrome(但不适用于 Opera/Konqueror)。

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

根据您需要支持的浏览器,您可能会使用 HTML5 的oninput
当受监控的输入发生变化时,它会立即触发。 在 jQuery 中,您只需执行以下操作:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM