打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
fckeditor下自动过滤word格式
很多人喜欢直接从Word中复制内容粘贴到FCK中,这样也复制了Word中的格式,也就产生了大量的垃圾代码,这些代码还经常影响到了页面的显示,今天下午终于狠下心来把这个问题解决了。从此从Word粘贴内容再也不会提示是否清理格式而是自动清除格式。

     FCK对IE浏览器的操作在这个文件中:fcKeditor/editor/js/fckeditorcode_ie.js。可以用编辑工具打开,其中代 码非常多,第33行就是对word格式的检测。源代码中 if(FCKConfig.AutoDetectPasteFromWord&&A.length>0){var B=/<w[^>]*(( class="?MsoNormal"?)|(="mso-))/gi;if (B.test(A)){......} 就是自动检测文字里是否包含word的标签,而我们的修改就是在就在最后一个大括号里添加代码。变量A就是粘贴板里的内容,B.test(A)就是检测是 否是从Word粘贴过来的,我们用var D=A,然后在对D进行过滤, 最后把过滤后的数据插回到输入框,就是 result=this.InsertHtml(D); 

具体的过滤代码FCK中也有非常好的例子,过滤代码可以在fcKeditor/editor/dialog/fck_paste.html中找到, 在185行方法:function CleanWord( oNode, bIgnoreFont, bRemoveStyles ),第一个参数为要处理内容所在的对象,bIgnoreFont和bRemoveStyles 分别为是否清除Font和Style代码。

找到了清除的方法,我们可以复制这个方法到fcKeditor/editor/js/fckeditorcode_ie.js中(firefox等非IE浏览器在fckeditorcode_gecko.js中),为了避免出错,可以把此方法原样不动的复制到fckeditorcode_ie.js的最上面,在做下小改动:

原方法第一句为:

var html = oNode.innerHTML ;[喝小酒的网摘]http://blog.const.net.cn/a/4370.htm

为获取要清除的内容

 

我们修改为:

var html = oNode;

 这样我们就可以直接传入要清除的内容了

又回到B.tset(A)后的大括号,里面全部代码删掉,如果有兴趣可以看一下,是弹出那个是否要清除格式的代码。大括号里内容可以这样写:

var D=CleanWord(A,true,true);result=this.InsertHtml(D);return false;

 

这样就完成了。

注意:CleanWord方法中大家仍可以自己设置是否清除Font和Style。

后面的return false;作用是停止粘贴,如果不中止这个操作,FCK中就会出现一个清除掉格式的内容和一个未清除格式的内容,呵呵,有兴趣可以试试。

[喝小酒的网摘]http://blog.const.net.cn/a/4370.htm
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
fckeditor文本过滤方法
给FCKeditor添加自定义按钮的方法
FCKeditor添加自定义按钮
Ext中使用fckeditor
FCKeditor使用方法技术详解
FCKeditor分页标签
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服