阻止复制/粘贴将网页样式复制到富文本编辑器

时间:2010-07-09 15:20:19

标签: javascript formatting editor copy-paste rte

我正在尝试两天现在有几个JavaScript轻量级富文本编辑器(rte),例如nicEditmooEditableMooRTE(最后两个被考虑因为他们使用了我正在为这个项目使用的mootools框架。)

我的问题是,对于所有这些,当我从网页复制预先格式化的文本(带有粗体,链接等文字......)然后将其粘贴到编辑器中时,它似乎已经格式化了。

这可能很好,但这是一个安全问题,因为如果我复制/粘贴整个网页,它将在编辑器中呈现整个网页。

我只是希望我的用户能够使用编辑器进行一些基本格式化,例如将一些文本换成粗体,斜体,添加链接并缩进其段落。

替代方案可以是showdown(我敢打赌 - 由stackoverflow使用),因为这种类型的编辑器(带有预览框)不会遇到上述问题(当你粘贴一些东西时) textarea,它是无格式的文本)。 但是,我不确定这是否适用于我的情况,因为编辑器将用于编写长篇文章(比大多数stackoverflow帖子长得多)。在这种情况下,我认为最好有一个适当的编辑器立即渲染东西(我的意思是在textarea,而不是在预览框中)。在我看来,真正的WYSIWYG编辑器更具吸引力且易于使用。

是否有一种简单的方法可以修改RTE,以便在粘贴某些文本时将其呈现为未格式化? 或者你认为我应该使用stackoverflow使用的那种解决方案? (showdown或类似的)或者你知道RTE没有我提到的复制粘贴问题吗?

请注意,我没有尝试使用CKeditor,FCKEditor和TinyMCE,因为它们太复杂(太重)而且YUI中的那个看起来很好但需要整个库才能工作。

谢谢,

FuzzyTern

1 个答案:

答案 0 :(得分:0)

您正在从富文本源复制并粘贴到富文本目标中。默认情况下,您将在目标中获取富文本。解决此问题的唯一方法是以某种方式捕获粘贴事件,将粘贴操作重定向到纯文本字段,然后将未格式化的文本从纯文本字段复制到富文本目标中。

  1. 使用onPaste处理程序进行捕获 粘贴事件(不起作用 Firefox或Opera)
  2. 使用隐藏字段粘贴 选中的文字进入。
  3. 插入隐藏字段的值 进入富裕的目的地 光标位置。
  4. 不确定利润来自哪里,但你去了。