ckeditor粘入word内容如何默认设置为保留样式
程序员文章站
2023-12-22 19:21:58
...
现在将word文档中的内容粘贴到ckeditor(CKEditor3.6.2)中好像默认了要去除内容样式,只保留了格式。。如何才能设置为保留样式呢?方法如下:
打开 \editor\plugins\pastefromword\filter\default.js
找到文件尾大概有这么一句代码;CKEDITOR.cleanWord=function(h,i){if (CKEDITOR.env.gecko)h=h.replace(/(<!--\[if [^<]*?\])-->([\S\s]*?)<!--(\[endif\]-- >)/gi,'$1$2$3');var j=new g (),k=j.dataFilter;k.addRules (CKEDITOR.plugins.pastefromword.getRules (i));i.fire('beforeCleanWord',{filter:k});try {h=j.toHtml(h,false);}catch(l){alert (i.lang.pastefromword.error);}h=h.replace (/cke:.*?".*?"/g,'');h=h.replace (/style=""/g,'');h=h.replace (/<span>/g,'');return h;};})();这段JS代码正是清除word里的格式的作用,我们可以 修改为;CKEDITOR.cleanWord=function(h,i){return h;if (CKEDITOR.env.gecko)h=h.replace(/(<!--\[if [^<]*?\])-->([\S\s]*?)<!--(\[endif\]-- >)/gi,'$1$2$3');var j=new g (),k=j.dataFilter;k.addRules (CKEDITOR.plugins.pastefromword.getRules (i));i.fire('beforeCleanWord',{filter:k});try {h=j.toHtml(h,false);}catch(l){alert (i.lang.pastefromword.error);}h=h.replace (/cke:.*?".*?"/g,'');h=h.replace (/style=""/g,'');h=h.replace (/<span>/g,'');return h;};})();
已经测试过了,完全正确!