CKEditor --- 复制word内容保留原有格式和样式

目录

配置过滤js文件

配置config文件

最终效果


说在前面,是的ckeditor版本如下图所示

 

配置过滤js文件

首先打开  \editor\plugins\pastefromword\filter\default.js  在文件的最后部分又如下代码(修改前的代码),也可以搜索CKEDITOR.cleanWord进行定位。

 

修改前

CKEDITOR.cleanWord = function (a, c) {
        CKEDITOR.env.gecko && (a = a.replace(/(<\!--\[if[^<]*?\])--\>([\S\s]*?)<\!--(\[endif\]--\>)/gi, "$1$2$3")); CKEDITOR.env.webkit &&
    (a = a.replace(/(class="MsoListParagraph[^>]+><\!--\[if !supportLists\]--\>)([^<]+<span[^<]+<\/span>)(<\!--\[endif\]--\>)/gi, "$1<span>$2</span>$3")); var b = new G, f = b.dataFilter; f.addRules(CKEDITOR.plugins.pastefromword.getRules(c, f)); c.fire("beforeCleanWord", { filter: f }); try { a = b.toHtml(a) } catch (d) { alert(c.lang.pastefromword.error) } a = a.replace(/cke:.*?".*?"/g, ""); a = a.replace(/style=""/g, ""); return a = a.replace(/<span>/g, "")
    }
})();

 

修改后的

CKEDITOR.cleanWord = function (a, c) {
        return a; CKEDITOR.env.gecko && (a = a.replace(/(<\!--\[if[^<]*?\])--\>([\S\s]*?)<\!--(\[endif\]--\>)/gi, "$1$2$3")); CKEDITOR.env.webkit &&
    (a = a.replace(/(class="MsoListParagraph[^>]+><\!--\[if !supportLists\]--\>)([^<]+<span[^<]+<\/span>)(<\!--\[endif\]--\>)/gi, "$1<span>$2</span>$3")); 
var b = new G, f = b.dataFilter; f.addRules(CKEDITOR.plugins.pastefromword.getRules(c, f)); c.fire("beforeCleanWord", { filter: f }); 
try { a = b.toHtml(a) } catch (d) { alert(c.lang.pastefromword.error) } 
a = a.replace(/cke:.*?".*?"/g, ""); a = a.replace(/style=""/g, ""); 
a = a.replace(/<span>/g, ""); return a;    }
})();

即在开始加上return a;另网上有讲解3.X版本的word样式保留解答,那个版本的参数是h,所以是return h;(有兴趣的百度吧,很好找)

 

配置config文件

其次在Config.js(和ckeditor.js在一个文件夹下)中添加

config.allowedContent = true;

如果没有配置上面的属性,复制word内容后,格式是保留的,但是样式没有保留,只有加了后才会保留!!!

而如下配置

//保证word导入格式
config.pasteFromWordRemoveFontStyles = false;
config.pasteFromWordRemoveStyles = false;
//是否强制复制来的内容去除格式
config.forcePasteAsPlainText =false; //不去除

通过验证,无需明确的设置,保持默认或者不设置即可。

 

最终效果

Word测试内容

最终显示效果

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值