标题：xheditor
简介
xhEditor是一个基于jQuery开发的简单迷你并且高效的可视化XHTML编辑器，基于网络访问并且兼容IE 6.0+,Firefox 3.0+,Opera 9.6+,Chrome 1.0+,Safari 3.22+。 
xhEditor完全基于Javascript开发，您可以应用在任何的服务端语言环境下，例如：PHP、ASP、ASP. N E T、JAVA等。
xhEditor可以在您的CMS、博客、论坛、商城等互联网平台上完美的嵌入运行，能够非常灵活简单的和您的系统实现完美的无缝衔接。
主要特点
精简迷你初始加载4个文件，包括：1个js(50k)+2个css(10k)+1个图片(5k)，总共65k。若js和css文件进行gzip压缩传输，可以进一步缩减为24k左右。高效代码基于强大的开源jQuery引擎开发，提供高效的代码执行效率，并完美的实现最佳浏览器兼容性。使用简单简单的调用方式，加一个class属性就能将您的textarea立马变成一个功能丰富的可视化编辑器。内置Ajax上传内置强大的Ajax上传，包括HTML4和HTML5上传支持(多文件上传、真实上传进度及文件拖放上传)，追求完美的用户上传体验。Word自动清理实现Word代码自动检测并清理，提供高效完美的Word代码过滤方案，生成代码最优化精简，但是却不丢失任何细节效果。UBB可视化编辑提供完美的UBB可视化编辑解决方案，在您获得安全高效代码存储的同时，又能享受可视化编辑的便捷。
兼容以下浏览器：
1. I E6, IE7, IE8, IE9 
2.Firefox 3.0 + 
3.Chrome 1.0 + 
4.Opera 9.6 + 
5.Safari 3.22 +
常见问题
1.xhEditor能兼容哪些jQuery版本？ xhEditor最初的版本是基于jQuery 1.3.2开发的，因此目前v1.0系列的所有版本都能最大的兼容1.3.2。为了获得更好的代码性能，目前xhEditor官方更建议使用最新的jQuery版本。
虽然说v1.0版本系列能最大的兼容jQuery 1.3.2，但是在实际测试过程中，也发现一个不可修正的问题：在IE6下无法使用缩略图上传模式。如果你不需要使用缩略图模式，可以在jQuery 1.3.2基础上完美的运行xhEditor v1.0版本系列。
2.我的网页是GB2312编码的，怎样才能使xhEditor编辑器没有乱码？ 如果使用最新版xhEditor的mini压缩版本，因为里面的文字完全utf-8编码化，可以直接调用，不会出现乱码现象。
如果使用的是源代码js文件或早期的xhEditor版本，在非utf-8编码的网页中使用就会出现乱码现象，只需将script的charset属性设置成utf-8即可完美解决：
<scripttype="text/javascript"charset="utf-8"src="xheditor-zh-cn.js"></script> 
3.正常加载了xhEditor，读取textarea的value值，为什么读取不到最新编辑结果？ 目前网络中所有的在线编辑器都是利用新创建的iframe来实现可视化编辑功能，xhEditor也不例外，所以在提交前必需要将最新的编辑结果重新同步到原来的textarea。
xhEditor默认会在textarea所在的form对象中绑定onsubmit事件，当用户点击submit按钮时，xhEditor就会将最新结果同步回textarea，随后随表单中的其它表单项一同提交到服务端脚本。因此，如果不需要用Javascript额外处理，普通的表单式提交是没任何问题的。
如果网页中需要用Javascript额外处理编辑结果，比如ajax提交表单，则有三种解决方案： 
使用jQuery的事件绑定或者标准DOM绑定方法在form上绑定submit事件(绑定代码必需在xhEditor初始化代码后面)，即是在xhEditor把值回传后再读取，在相应绑定的函数中读取textarea的value值即是最新编辑结果; 使用jQuery的标准取值方法:$('#textarea_id').val(); 使用xhEditor提供的专用读值API接口：editor.getSource(); 
4.怎么添加自定义的表情？ 可以在初始化参数中使用emots参数来自定义表情，对于emots参数的详细介绍请参考初始化参数列表。下面我们举一个简单例子：
在xheditor_emot文件夹中新建文件夹：msn 在msn文件夹中放置40个表情图片文件，文件名分别为：1.gif 到 40.gif 在初始化参数中添加： emots:{msn:{name:'MSN',count:40,width:22,height:22,line:8}} 
此参数定义了一个名字为msn的表情组，显示名称为：“MSN”，总共40个表情，表情区域的宽度和高度都是22像素，每行8个。
5.怎么覆盖编辑器自带的默认表情？ 只需把自定义表情的名称设置为default，即可覆盖掉编辑器中自带的表情组。下面为操作示例：
删除xheditor_emot文件夹中的default文件夹 将自定义的表情文件夹名改为default 在初始化参数中添加： emots:{'default':{name:'MSN',count:40,width:22,height:22,line:8}} 
6.当前页面设置了document.domain，如何让xhEditor工作正常？ 主要考虑到若要让1.0支持跨域调用，编辑器内核架构变动会非常大，因此目前v1.0版本系列暂时还不支持跨域调用。
我们开发团队已经着手规划开发v2.0版本系列，到时会努力提供完美的跨域解决方案，敬请期待。
7.textarea处在隐藏的区域中，如何初始化编辑器？ 如果你直接对隐藏区域中的textarea初始化xhEditor，会初始化失败，并提示：“当前textarea处于隐藏状态，请将之显示后再初始化xhEditor，或者直接设置textarea的width和height样式”。
这个问题出现的根源在于浏览器的渲染模式造成的，目前的所有浏览器对于隐藏状态的内容是不进行渲染，也就是隐藏区域内的所有元素都不具有宽度和高度值。xhEditor编辑器默认是读textarea的高度和宽度值，而隐藏状态下就会读取失败。
针对这个问题，我们提出以下两个解决方案：
先将隐藏状态的区域显示后，再用JS代码初始化编辑器，这也是xhEditor官方建议的方案; 在textarea上设置CSS高度和宽度，举例如下： style="width:300px;height:200px;" 
8.使用普通表单提交，怎么每次服务端取到的值总是之前旧的编辑结果？ 如果你使用普通的表单式提交，而非AJAX提交，还是会出现服务端无法读取到最新编辑结果的问题。那么请检查一下你的代码是不是属于以下情况：
如果是以下结构的HTML代码，由于是非标准HTML代码结构，在某些浏览器(例如Firefox)下会导致xhEditor工作不正常： <table><form><tr>唯一解决方案：把代码结构改为标准结构： <form><table><tr>
版本日志
xhEditor v1.1.12 (简体,繁体,English) (zip) [720KB](更新：2011年12月4日)
xhEditor v1.1.11 (简体,繁体,English) (zip) [720KB](更新：2011年11月1日)
xhEditor v1.1.10 (简体,繁体,English) (zip)[718KB] ( 更新：2011年9月4日 )
MD5: 79DA71B9F5CD533 591449451F4BF69AC
xhEditor v1.1.10 (简体,繁体,English) (7z)[436KB] ( 更新：2011年9月4日 )
MD5: 0E5A88D0E1A666441ACB11AAD929C361
xhEditor v1.1.10 (简体,繁体,English) [507KB] ( 更新：2011年9月4日 )
MD5: 27E15A404FC76107BBB5669A919A17CB
xhEditor v1.1.8 (简体,繁体,English) (zip) [702KB] ( 更新：2011年7月7日 )
xhEditor v1.1.7 (简体,繁体,English) (zip) [687KB] ( 更新：2011年6月1日 )