场景:我想拦截文本框/输入框内的粘贴事件,并过滤粘贴的内容。
Webkit/IE 处理得相当好,因为我可以将代码附加到 onpaste
事件上,然后从剪贴板读取被粘贴的内容。有很多相关的例子。
对于 Gecko 来说,情况比较棘手,因为据我所知,在 Firefox 上无法读取剪贴板内容 (除非有人知道解决方法?)
对于这种情况,我只能使用输入框置换技巧来实现。
但是在 Opera 中会让人感到烦恼。我可以捕获 CTRL+V 和 SHIFT+INS,但没有 onpaste
事件。
更不用说任何剪贴板交互了,似乎都不行。
所以,我的问题是:
我能检测到用户是否在 Opera 的上下文菜单中点击了 粘贴
吗?还有其他检测事件的方法吗?
编辑:
感谢大家的回答-尽管没有确定性的解决方案,但它们都提供了很好的参考。
如果必须选择一个答案,我会选择唯一一个试图回答原始问题并且如果不是太过于 hack ,那么它可能会起作用。
注意事项(有关输入过滤的):
- 可以捕获拖动的内容:
mouseup
+setTimeout
在几乎所有情况下都能完美解决。