照网上介绍用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)的判断去掉就可以了。 试了N次都不能清除.是不是代码有问题?
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)的判断去掉就可以了。 试了N次都不能清除.是不是代码有问题?
解决方案 »
- 一个关于undefined的问题
- 求助,鼠标放到层A上,弹出层B,鼠标可以在AB任意一个上,鼠标离开这2个层时,层B自动隐藏。请问如何实现?
- 最简单的JS问题
- 急求解答:如何取出特定标记对内的内容
- ExtJs中Grid为什么某些列没有值?
- 下拉框提示功能求助!
- word 操作问题
- <a href="" onclick="JavaScript:fun();">AAA</a>怎么不能调用fun()函数?
- Cannot set property 'onmouseover' of null
- 新手上路,求大佬指点
- 国外有什么知名站点用mootools吗??
- 高手帮忙看看。这个广告效果的大FLASH是居左的。怎么才能让它居中啊?
打开fckeditor\editor\js下的fckeditorcode_ie.js, 可以把此方法原样不动的复制到fckeditorcode_ie.js的最上面,在做下小改动:
将CleanWord函数粘贴到头部。原方法第一句为:var html = oNode.innerHTML ;为获取要清除的内容我们修改为:var html = oNode;,这样我们就可以直接传入要清除的内容了