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

时间:2010-12-06 11:20:21

标签: javascript html firefox paste

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

clipboardData.getData()

但它在Firefox中不起作用,我想为所有浏览器提供一些东西。我使用的是HTML和Javascript。

感谢

2 个答案:

答案 0 :(得分:5)

简短的回答是,一般来说,在粘贴之前无法获取文本。您可以做的是CKEditor和TinyMCE等基于网络的大型WYSIWYG编辑器,它们是:

  1. 使用keypress事件处理程序检测 Ctrl - v / shift - ins 事件
  2. 在该处理程序中,保存当前用户选择,在屏幕外添加<div>元素(例如在左边-1000px处)到文档,将插入符移动到该div内部,从而有效地重定向粘贴< / LI>
  3. 在事件处理程序中设置一个非常简短的计时器(比如说1毫秒)来调用另一个从div中检索HTML内容的函数,并执行所需的任何处理,从文档中删除div,恢复用户选择并插入已处理的HTML。
  4. 请注意,这仅适用于键盘粘贴事件,而不适用于上下文或编辑菜单中的粘贴。当粘贴事件触发时,将插入符重定向到div中已经太晚了(至少在某些浏览器中)。

答案 1 :(得分:1)

让剪贴板在所有浏览器中工作是很棘手的,我相信可以安全地假设没有办法让它只使用JavaScript,除非你的目标是一个特定的浏览器(通常是IE)。我使用ZeroClipboard:http://code.google.com/p/zeroclipboard/ - 它似乎可以正常工作。