客户端Javascript代码,用于从CKEditor中删除伪造的HTML

客户端Javascript代码,用于从CKEditor中删除伪造的HTML,javascript,jquery,ckeditor,Javascript,Jquery,Ckeditor,我相信这可能与 但就我而言,我使用的是CKEditor;但是,在将数据发送到服务器之前(或在接收回数据之后),我希望去掉“垃圾”HTML标记和注释,例如从最新(2007或更高版本)的Microsoft Office粘贴时出现的标记和注释。因为这里的服务器端是一个第三方应用程序,如果可以的话,我更愿意做这个客户端。是的,我知道这样做的安全风险;这只是为了清理常见用例中的数据 是否有任何通用技术或现有库(特别是jQuery友好库)可以做到这一点?注意,我不想对所有HTML进行编码或剥离,只想对与Of

我相信这可能与

但就我而言,我使用的是CKEditor;但是,在将数据发送到服务器之前(或在接收回数据之后),我希望去掉“垃圾”HTML标记和注释,例如从最新(2007或更高版本)的Microsoft Office粘贴时出现的标记和注释。因为这里的服务器端是一个第三方应用程序,如果可以的话,我更愿意做这个客户端。是的,我知道这样做的安全风险;这只是为了清理常见用例中的数据


是否有任何通用技术或现有库(特别是jQuery友好库)可以做到这一点?注意,我不想对所有HTML进行编码或剥离,只想对与Office相关的crud进行编码或剥离。

您是否尝试过CKEditor内置的Word清理功能? 它似乎是在使用“从Word粘贴”对话框时自动运行的,但也可以从代码中使用。 我不是CKEditor API方面的专家,因此可能有一种更有效或正确的方法来实现这一点,但在当前版本(3.3.1)中,这似乎是可行的:

如果您对此清理不满意,可以根据清理需要修改default.js。 有一些配置选项可用于清理、检查(搜索“pasteFromWord”选项)


如果您需要更高级的东西,但需要服务器访问,我建议您检查WordOff()。您可以围绕他们的服务构建一个代理和jsonp包装器,这样您就可以在不安装服务器的情况下从客户端使用它。

它必须是Javascript吗?是否可以选择使用服务器端脚本?如果是,是什么平台?这实际上是使用Jabber客户端,因此它必须作为Jabber服务器的插件来完成,在这种情况下,它将是Java。但出于逻辑上的原因,我强烈希望使用客户端Javascript解决方案。
function cleanUp() {

    if (!CKEDITOR.cleanWord) {
        // since the filter is lazily loaded by the pastefromword plugin we need to add it ourselves. 
        // We use the same function as the callback for when the cleanup filter is loaded. Change the script path to the correct one
        CKEDITOR.scriptLoader.load("../plugins/pastefromword/filter/default.js", cleanUp, null, false, true );
        alert('loading script for the first usage');
    } else { // The cleanWord is available for use

        // change to the correct editor instance
        var editor = CKEDITOR.instances.editor1;
        // perform the clean up
        var cleanedUpData = CKEDITOR.cleanWord(editor .getData(),  editor );

        // do something with the clean up
        alert(cleanedUpData);
    }
}

cleanUp();