我正在编写nicEdit的扩展名,这会将所有粘贴的富文本粘贴为纯文本。我的代码在Chrome和IE7中完美运行,但在Firefox 3中失败了(可能是Firefox 2,但出于不同的原因 - 特别是缺少粘贴事件)。
奇怪的是,当粘贴的文本是纯文本时,我的代码可以正常工作。它似乎扼杀了任何格式。以下是Firefox版本中涉及的步骤,这些步骤在粘贴时触发(事件触发,但粘贴失败):
contentEditable = true
创建一个新div,并将其添加到DOM 似乎所有这些步骤都已执行,但粘贴从未发生过。我在控制台中没有出现任何错误(只是与text-align
上的解析错误相关的警告 - 声明被删除),并且当我使用Firebug调试时没有发生任何可疑行为(除了我的粘贴似乎是空的,这是问题)。
警告让我觉得Firefox可能无法解析我一直在粘贴的内容,但是如果没有我的拦截代码,我可以很好地粘贴到nicEditor中。
我已经在http://www.ryankinal.com/paste/firefox.html上传了我的仅Firefox测试脚本 - 这是Firefox从我的完整扩展程序执行的代码。
有几点需要注意:
Function.prototype
进行了一些修改,我觉得很奇怪答案 0 :(得分:1)
问题是粘贴事件在某些浏览器(包括Firefox)中重定向插入符号为时已晚。如果截取键盘快捷键进行粘贴( Ctrl + V , Cmd + ,您将能够执行插入符重定向技巧V 和 Shift + 插入)并忽略粘贴事件,但这意味着不会覆盖由上下文和编辑菜单触发的粘贴。不过,我认为这是你能做的最好的事情。