如何获取将在我的html文本编辑器中粘贴的文本?

nov*_*ino 4 html javascript firefox paste

我的主页(textarea)中有一个小文本编辑器,我可以在其中粘贴文本.如何在粘贴之前将此文本放入变量中?我知道有这个功能:

clipboardData.getData()
Run Code Online (Sandbox Code Playgroud)

但它在Firefox中不起作用,我想要所有浏览器的东西.我使用的是HTML和Javascript.

谢谢

Tim*_*own 5

简短的回答是,通常在粘贴之前无法获取文本.您可以做的是CKEditor和TinyMCE等基于网络的大型WYSIWYG编辑器所做的事情,即:

  1. 使用事件处理程序检测Ctrl- v/ shift- ins事件keypress
  2. 在该处理程序中,保存当前用户选择,在<div>屏幕外添加一个元素(比如左边-1000px),将插入符号移动到div中,从而有效地重定向粘贴
  3. 在事件处理程序中设置一个非常简短的计时器(比如说1毫秒)来调用另一个从div中检索HTML内容的函数,并执行所需的任何处理,从文档中删除div,恢复用户选择并插入处理过的HTML.

请注意,这仅适用于键盘粘贴事件,而不适用于上下文或编辑菜单中的粘贴.当粘贴事件触发时,将插入符重定向到div中已经太晚了(至少在某些浏览器中).