启用contentEditable或designMode后,如何检测Drag'n'Drop和Paste操作?

3

你们中有没有人知道一种跨浏览器的方法来检测可编辑 HTML 文档(启用 designMode 或 contentEditable)中的粘贴或拖放插入。

只要用户使用 Ctrl-V 快捷键,检测粘贴就可以工作,因为它会生成键盘事件,但是如果使用浏览器的“编辑”->“粘贴”,似乎不会生成任何事件。


1
我建议你看一下CodeMirror(http://marijn.haverbeke.nl/codemirror/)并了解作者的做法。 - LiraNuna
它似乎能够很好地检测粘贴,但是通过拖放,你可以悄悄地插入代码而不被检测到。 - Fionn
2个回答

1

在可编辑文档中,Firefox 3.0版本开始,WebKit已经几年支持(不确定版本号),IE从5.5版本开始,有一个适用于所有粘贴操作(包括通过上下文或编辑菜单)的paste事件。将paste事件处理程序添加到元素中,在所有这些浏览器中都可以工作。

很抱歉我没有关于拖放事件的任何见解:在我所使用的编辑器上,我有充分的理由明确禁用拖放。


0
处理拖放,可以订阅 mouseUp 事件。但在这种情况下,您必须解析已经粘贴的 HTML。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,