【问题标题】:How to paste Text from Word to plain text by preserve defined styles?如何通过保留定义的样式将文本从 Word 粘贴到纯文本?
【发布时间】:2011-07-27 16:34:51
【问题描述】:

我想让用户将文本粘贴到编辑器(当前为 CKEditor)。通过粘贴文本,必须删除所有未列入白名单的样式和元素,包括图像、表格等。因此应将 90% 转换为纯文本或将其删除,而应保留粗体、斜体或下划线等简单样式。

没想到这么复杂。但是我在文档和 CKEditor 的示例中所能找到的只是粘贴完整的纯文本或从 Word 中粘贴清理过的内容,而无法配置白名单(即使我删除了所有与表格相关的插件,它仍然是可能的从 MS Word 中粘贴表格)。

我真的非常感谢任何提示。

谢谢。

【问题讨论】:

    标签: javascript ckeditor wysiwyg


    【解决方案1】:

    您必须编写自己的解析器。另一个问题是 MS word 使用 Windows-1252 字符编码,而大多数 Web 使用 UTF-8 编码,所以如果你从 WORD 粘贴并通过 AJAX 传输此数据,则会出现乱码。

    虽然 Dreamweaver 具有相当不错的“从单词粘贴”功能,但您不太可能在网上找到相应的功能。这是一个巨大而复杂的问题,它本身就是一个应用程序。连 WORD 的“另存为 HTML”都做不好。

    可悲的是,大多数人必须做的就是将其全部剥离为 ASCII(粘贴到记事本中),将其放入编辑器并重新标记。

    【讨论】:

      【解决方案2】:

      您可以在编辑器实例中为“粘贴”事件添加监听器:http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#event:paste

      通过这种方式,您可以获得要粘贴的 HTML,并且您可以执行所需的任何清理操作(例如,基于将该 html 插入到 div 中,然后使用 DOM,或在字符串上使用正则表达式)。

      【讨论】:

        【解决方案3】:

        找到解决办法:

        1. 听 AlfonsoML 写的粘贴事件。
        2. 将粘贴的 Word 内容发送到服务器。
        3. 用HTML Agility Pack解析它。
        4. 将其发回给客户。
        5. 将其插入到编辑器中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-08-03
          • 1970-01-01
          • 2018-02-16
          • 2011-05-06
          • 1970-01-01
          相关资源
          最近更新 更多