3. 其它相关

3.1. 使用常见问题

3.1. 使用常见问题

  1. xhEditor能兼容哪些jQuery版本?
  2. 我的网页是GB2312编码的,怎样才能使xhEditor编辑器没有乱码?
  3. 正常加载了xhEditor,读取textarea的value值,为什么读取不到最新编辑结果?
  4. 怎么添加自定义的表情?
  5. 怎么覆盖编辑器自带的默认表情?
  6. 当前页面设置了document.domain,如何让xhEditor工作正常?
  7. 使用普通表单提交,怎么每次服务端取到的值总是之前旧的编辑结果?
  1. xhEditor能兼容哪些jQuery版本?

    xhEditor最初的版本是基于jQuery v1.3.2开发的,因此目前v1.0系列的所有版本都能最大的兼容v1.3.2。为了获得更好的代码性能,目前xhEditor官方更建议使用jQuery v1.4.4版本。

    虽然说v1.0版本系列能最大的兼容jQuery v1.3.2,但是在实际测试过程中,也发现一个不可修正的问题:在IE6下无法使用缩略图上传模式。如果你不需要使用缩略图模式,可以在jQuery v1.3.2基础上完美的运行xhEditor v1.0版本系列。

  2. 我的网页是GB2312编码的,怎样才能使xhEditor编辑器没有乱码?

    如果使用最新版xhEditor的mini压缩版本,因为里面的文字完全utf-8编码化,可以直接调用,不会出现乱码现象。

    如果使用的是源代码js文件或早期的xhEditor版本,在非utf-8编码的网页中使用就会出现乱码现象,只需将script的charset属性设置成utf-8即可完美解决:

    <script type="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提交表单,则有三种解决方案:

    1. 使用jQuery的事件绑定或者标准DOM绑定方法在form上绑定submit事件(绑定代码必需在xhEditor初始化代码后面),即是在xhEditor把值回传后再读取,在相应绑定的函数中读取textarea的value值即是最新编辑结果;
    2. 使用jQuery的标准取值方法:$('#textarea_id').val();
    3. 使用xhEditor提供的专用读值API接口:editor.getSource();


  4. 怎么添加自定义的表情?

    可以在初始化参数中使用emots参数来自定义表情,对于emots参数的详细介绍请参考2.2. 初始化参数列表。下面我们举一个简单例子:

    1. 在xheditor_emot文件夹中新建文件夹:msn
    2. 在msn文件夹中放置40个表情图片文件,文件名分别为:1.gif 到 40.gif
    3. 在初始化参数中添加:
      emots:{msn:{name:'MSN',count:40,width:22,height:22,line:8}}

      此参数定义了一个名字为msn的表情组,显示名称为:“MSN”,总共40个表情,表情区域的宽度和高度都是22像素,每行8个。

  5. 怎么覆盖编辑器自带的默认表情?

    只需把自定义表情的名称设置为default,即可覆盖掉编辑器中自带的表情组。下面为操作示例:

    1. 删除xheditor_emot文件夹中的default文件夹
    2. 将自定义的表情文件夹名改为default
    3. 在初始化参数中添加:
      emots:{'default':{name:'MSN',count:40,width:22,height:22,line:8}}
  6. 当前页面设置了document.domain,如何让xhEditor工作正常?

    主要考虑到若要让1.0支持跨域调用,编辑器内核架构变动会非常大,因此目前v1.0版本系列暂时还不支持跨域调用。

    我们开发团队已经着手规划开发v2.0版本系列,到时会努力提供完美的跨域解决方案,敬请期待。

  7. 使用普通表单提交,怎么每次服务端取到的值总是之前旧的编辑结果?

    如果你使用普通的表单式提交,而非AJAX提交,还是会出现服务端无法读取到最新编辑结果的问题。那么请检查一下你的代码是不是属于以下情况:

    1. 如果是以下结构的HTML代码,由于是非标准HTML代码结构,在某些浏览器(例如Firefox)下会导致xhEditor工作不正常:
      <table><form><tr>
      唯一解决方案:把代码结构改为标准结构:
      <form><table><tr>

我们的微博