2011-12-09 4 views
1

나는 CKEditor 텍스트 영역을 포함하는 $ .posting 인 웹 양식을 가지고 있습니다.게시 용 CKEditor 내용

  1. .serialize()을 CKEditor 내용을 받고되지 않습니다

    $(document).ready(function() { 
    
         CKEDITOR.replace('html'); 
         CKEDITOR.config.htmlEncodeOutput = true; //seems to have no effect 
    
         $('#save').click(function() {    
    
          $.post('/async.php?a=save-slide', $('#slideForm').serialize(), 
          function(json) { 
           console.log(json); 
          }, 'json'); 
         });    
        }); 
    

    나는 두 가지 문제가있다. console.log 직렬화 된 문자열 인 경우 html = 비어 있습니다.

  2. CKEditor getData() 메서드를 사용하고 게시 된 콘텐츠에 앰퍼샌드 ( )가있는 경우 XML 기반 API 호출을 만들기 때문에 스크립트가 중단됩니다.

콘텐츠를 얻을 수있는 방법과 안전하게 XML 친숙한 데이터를 게시하는 방법에 대한 아이디어가 있으십니까?

답변

1

나는에 그들이 부착 된 다시 텍스트 영역에 ckeditor 내용을 이동하려면 다음과 같은 일반적인 방법을 사용하십시오

var $editors = $("textarea.editor"); 
    if ($editors.length) { 
     $editors.each(function() { 
      var instance = CKEDITOR.instances[this.id]; 
      if (instance) { $(this).val(instance.getData()); } 
     }); 
    } 

상황이 루프에 대한 필요가없는 간단합니다.

jquery 도우미가이 종류의 일에 편리합니다.

+0

getData를 사용할 수 있지만 코드가 HTML로 인코딩되어야하고 코드에있는 구성 옵션이 작동하지 않는 것 같습니다. – doremi

+0

http://stackoverflow.com/questions/1219860/javascript-jquery-html-encoding – ScottE