ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

帝国CMS 7.5编辑器从WORD中粘贴过来无法保留格式和图片的解决办法

2019-08-06 09:57:04  阅读:202  来源: 互联网

标签:WORD CKEDITOR CMS replace &# pastefromword 7.5 return 160


 

配置过滤js文件

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

/e/admin/ecmseditor/infoeditor/plugins/pastefromword/filter
 

修改前

CKEDITOR.cleanWord = function (a, c) {
&#160;&#160;&#160;&#160;&#160;&#160;&#160; CKEDITOR.env.gecko && (a = a.replace(/(<\!--\[if[^<]*?\])--\>([\S\s]*?)<\!--(\[endif\]--\>)/gi, "$1$2$3")); CKEDITOR.env.webkit &&
&#160;&#160;&#160; (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, "")
&#160;&#160;&#160; }
})();
&#160;

修改后的

CKEDITOR.cleanWord = function (a, c) {
&#160;&#160;&#160;&#160;&#160;&#160;&#160; return a; CKEDITOR.env.gecko && (a = a.replace(/(<\!--\[if[^<]*?\])--\>([\S\s]*?)<\!--(\[endif\]--\>)/gi, "$1$2$3")); CKEDITOR.env.webkit &&
&#160;&#160;&#160; (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;&#160;&#160;&#160; }
})();
即在开始加上return a;另网上有讲解3.X版本的word样式保留解答,那个版本的参数是h,所以是return h;(有兴趣的百度吧,很好找)

&#160;

配置config文件

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

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

而如下配置

//保证word导入格式
config.pasteFromWordRemoveFontStyles = false;
config.pasteFromWordRemoveStyles = false;
//是否强制复制来的内容去除格式
config.forcePasteAsPlainText =false; //不去除
通过验证,无需明确的设置,保持默认或者不设置即可。

标签:WORD,CKEDITOR,CMS,replace,&#,pastefromword,7.5,return,160
来源: https://www.cnblogs.com/surplus/p/11307091.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有