我写的扩展 nicEdit 这将导致所有贴丰富的文本将粘贴为纯文本。我的代码完美的作品在铬和IE7,但未在火狐3(而且,据推测,Firefox2,但出于不同的原因-值得注意的是,缺乏一个糊的事件)。

奇怪的部分是,我的代码作品完美的文本时被粘贴是纯文本。这似乎窒息的任何格式。这里所涉及的步骤的火狐版本,这是发上粘贴(事件发射的,但贴的失败):

  • 获得当前的选择和范围
  • 创建一个新的div contentEditable = true, 和增加它对DOM
  • 移动插入的新div
  • 设置一个超时得到HTML从新div,清理它,并把它放进入旧的选择(其中我抓住了步骤1)
  • return true(允许原贴完整的、粘贴内容纳入新的div)

似乎所有这些步骤执行,但膏永远不会发生。我没有得到任何错误,在控制台(只是一个警告有关的分析错误上 text-align -该宣言是下降了),并没有什么可疑的发生,当我试与萤火虫(除了我的贴似乎是空的,这是该问题)。

警告让我想到那Firefox可能只是无法分析内容,我已经粘贴,但是没有我的拦截代码,我能够粘贴到nicEditor就好了。

我已经上传了我的火狐-唯一的测试脚本 http://www.ryankinal.com/paste/firefox.html -这是代码,用于执行从火狐,我完全扩展。

一对夫妇的事情要注意:

  • 我已经采取了相当数量的灵感来自介绍贴的插件
  • 我使用一些jQuery元的选择
  • 那也似乎是某些修改 Function.prototype 在nicEdit,我找到奇怪
  • 我可以用另一个丰富的文本编辑器,但考虑这一运动在调试
  • 代码链接上述目的只是为FIREFOX
有帮助吗?

解决方案

问题是,贴的事件是只太晚,将插入在某些浏览器,包括火狐。你就可以做到插入标记-重新定向的技巧,如果你拦截快捷键粘贴(Ctrl+V, Cmd+V移位+插入)和忽略的粘贴的事件,但这意味着糊触发的上下文和编辑菜单不包括在内。我觉得这是你能做的最好,但是。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top