各位好,
我现在正在做过网站,里面后台用的CKEditor来编辑文章。“发表”和“修改”操作都打算用AJAX来实现。
“发表”是没问题,用POST方式递交上去就可以了。问题就处在“修改”这块儿。因为我需要服务器端给我生成一个XML文件,返回给jQuery。例如:<response>
  <title>文章贴图测试</title>
  <comment>1</comment>
  <column>1</column>
  <content>
    <p>
      <img alt="" src="/xsaop2/media/images/image_02.jpg" style="width: 800px; height: 600px;"/>
    </p>
  </content>
</response>问题就处在这里,因为用CKEditor编辑的富文本,里面有HTML标签,和XML的标签混合在一起了。我用jQuery读取的时候,jQuery就傻眼了:$.ajax({
  ... ...
  dataType: "xml",
  success:
    function(data){
      ... ... ... ...
      var content = $(data).find('content').text();
      CKEDITOR.instances['articleEditor'].setData(content);
    }
});变量content里面什么都没有。不知道有哪位使用过CKEditor,或者其他在线编辑器,有这方面经验的,能够帮忙解答一下。谢谢。

解决方案 »

  1.   

    jquery 有时遇到的问题是还不如JavaScript,但是每种框架有自己的好处,用ajax,jquery封装的就很好,我怀疑的是你用ajax读错了content,或者其他标签,对于编辑器我也不是很熟,但是我觉得可以直接当做文本来读就可以了,还是把editer生成的文字写成xml再来读,那样ajax jquery封装的更好
      

  2.   

    我也有考虑过直接服务器端的Content Type设置为Text/Plain(我用的是PHP),但是因为我除了要读取文章本身,还得读取其他的信息,标题啊,所在版块啊等等,所以才考虑了XML。
      

  3.   

    dataType (optional): A string defining the type of data
    expected back from the server (xml, html, json, jsonp,
    script, or text).难道就因为Ajax中的X, 有(xml, html, json, jsonp, script, or text)可以选择, 却一定要用xml? 
      

  4.   


    $.ajax({
      type: "GET",
      url: "http://api.flickr.com/services/feeds/photos_public.gne?tags=car&tagmode=any&format=json&jsoncallback=?",
      dataType: "jsonp",
      success : function(data){
      $.each(data.items, function( i,item ){
    $("<img class='para'/> ").attr("src", item.media.m ).appendTo("#resText");
    if ( i == 3 ) { 
    return false;
    }
          });
              }
    }); 这个是一个完整的方法,楼主你少了点什么吧
      

  5.   

    谢谢啊,是的。是还需要其他的设置啊什么的。这些就是我那里头的省略号了。
    我用Firebug查看网路情况,数据来回都正常,就是接收的时候读不出来了。
      

  6.   

    我正用ckeditor3.2.1 在编辑模式 可以把你的 xml代码粘贴到 editor
    但假如在 源码模式 粘贴,再切换回 编辑模式,ckeditor会把你的xml转换为一个对象显示出来ckeditor会过滤标签的,它只处理html中的常用标签,所以不建议你直接使用另外的标签。
      

  7.   

    可以过滤从编辑器得到文本,过滤掉html里面的标签