分享、学习、提高
2009/06/09 21:06
文章作者:Enjoy 转载请注明原文链接。

用fckeditor做为用户发布的编辑框,允许用户发布Word。默认的情况下,粘取进word时,提示是否清除word样式,选择"是"则弹出一个框,需要再粘贴一次来清除word样式。这个操作很麻烦,因此要取消。

开始找到的方法是把fckeditor\editor\js下的fckeditorcode_ie.js,查找PasteFromWord会找到以下内容:
PasteFromWord:function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');}
把它改为
PasteFromWord:function(){FCK.InsertHtml( clipboardData.getData("Text") );}
但这样,就变纯文本了,不行!

搜索了好久没找到有效方法,最终参考http://blog.csdn.net/yeahugo/archive/2008/06/04/2512386.aspx的方法,几经测试,终于实现了。

由于JS什么的会自动缓存,每次测试,还要清除临时文件再刷新页面才行,真麻烦啊!

具体操作如下:
打开fckeditor\editor\js下的fckeditorcode_ie.js,
找到if (confirm(FCKLang.PasteWordConfirm))那条,改为:
if (confirm(FCKLang.PasteWordConfirm)){var D=A;D=CleanWord(D,true,true);FCK.InsertHtml(D);return false;}
打开dialog\fck_paste.html,把里面的CleanWord函数粘贴到头部。


这时再粘贴Word时,选择是后,就会直接清除格式。如果不要是否的提示,把confirm(FCKLang.PasteWordConfirm)的判断去掉就可以了。
多付出一点点
2009/08/27 10:53
对了,我的qq是56027617,欢迎一起探讨
多付出一点点
2009/08/27 10:41
很感谢楼主。可能是开发环境的原因,我这边出错,个人已经改好,如果其他朋友也出现问题,可以参照,将:CleanWord方法内的var html = oNode.innerHTML ;改为var html = oNode ;即可。
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
昵称   密码   游客无需密码
网址   电邮   [注册]
               

验证码 不区分大小写