CuteEditor Html中显示Word格式粘贴的文章[CuteEditor WordToHtml]
前言
部署和试用CuteEditor没花多少功夫,老实说挺好用,挺简单,也顺利的把数据插入了数据库。把Word里的文章直接粘贴到CuteEditor也没什么问题,而且格式也保存的比较好,可是我要从数据库里面把这带格式的文章显示出来的时候就麻烦了,格式全没了,而且很明显格式用特殊字符替换了,于是反编译找源码折腾了我老半天,总算是找到了,所有写个随笔留个记号吧,也行你也用得着,顺便推荐一下CuteEditor,而且博客园里面写文章和随笔也是采用的这个哦!蛮不错的!!
感谢
正文
1. 没啥好说的直接贴代码,原理也在前言里面说明了,主要是用他的解码js函数
aspx页面(引用页)
<script type="text/javascript" src="/CuteSoft_Client/CuteEditor/Scripts/Gecko_Implementation/CuteEditorImplementation.js"></script>
<input type="hidden" id="Hidden1" value='<%="这里改成你含Word格式的数据源"%>' />
<script type="text/javascript" language="javascript">
document.write(CuteEditor_Decode(document.getElementById("hidvalue").value));
</script>
<input type="hidden" id="Hidden1" value='<%="这里改成你含Word格式的数据源"%>' />
<script type="text/javascript" language="javascript">
document.write(CuteEditor_Decode(document.getElementById("hidvalue").value));
</script>
代码解说:CuteEditor_Decode函数就是关键的解码函数了,这里没有把数据源直接放到script内部是因为文章里面可能有“'”这样的字符而出错。
结束
关于CuteEditor也是最近两天才试用,不知道用FCKeditor的朋友有没有遇到同样的问题,献丑的多说句我找的方法:先直接输出文章,找里面的替换特殊字符(应该比较明显,比如#2、#1)然后整个项目搜索这个字符串,凭经验找到可能的JS文件,把压缩过的JS用格式化工具格式一下,再找到对应出现过的字符就可以找到方法了。
补充[2008年9月17日]
在修改的时候如果直接把存在数据库带Word格式的文章赋值给CuteEditor的话格式也是出不来的,同样也需要转换,但是这里就不能像显示那样导入js文件直接调用了,会报JS错误的,所以需要单独把方法摘出来调用,替换一下格式字符就行了,这里我已经整理好了,贴给大家:
function CuteEditor_Decode(Ox98) {
if(!Ox98)
{
return Ox98;
};
Ox98=Ox98.replace(/#1/g,"<");
Ox98=Ox98.replace(/#2/g,">");
Ox98=Ox98.replace(/#3/g,"&");
Ox98=Ox98.replace(/#4/g,"*");
Ox98=Ox98.replace(/#5/g,"o");
Ox98=Ox98.replace(/#6/g,"O");
Ox98=Ox98.replace(/#7/g,"s");
Ox98=Ox98.replace(/#8/g,"S");
Ox98=Ox98.replace(/#9/g,"e");
Ox98=Ox98.replace(/#a/g,"E");
Ox98=Ox98.replace(/#0/g,"#");
return Ox98;
}
调用的方法就不多说了,继续探索......
if(!Ox98)
{
return Ox98;
};
Ox98=Ox98.replace(/#1/g,"<");
Ox98=Ox98.replace(/#2/g,">");
Ox98=Ox98.replace(/#3/g,"&");
Ox98=Ox98.replace(/#4/g,"*");
Ox98=Ox98.replace(/#5/g,"o");
Ox98=Ox98.replace(/#6/g,"O");
Ox98=Ox98.replace(/#7/g,"s");
Ox98=Ox98.replace(/#8/g,"S");
Ox98=Ox98.replace(/#9/g,"e");
Ox98=Ox98.replace(/#a/g,"E");
Ox98=Ox98.replace(/#0/g,"#");
return Ox98;
}