2011-03-08 10 views
1

아직 솔루션을 찾지 못했지만 아직 해결 방법이 없습니다. 텍스트 영역이 변경되었는지 감지하고 싶습니다. 텍스트 영역 자체를 확인할 수 없도록 ckeditor를 사용하고 있습니다. 나는 문서에서 뭔가를 발견했지만 나는 그것을 위해 일할 수 없었다.ckeditor를 사용하여 변경 사항을 감지했습니다.

누군가 이전에이 작업을 시도했는데 가능 했습니까?

답변

4

몇 가지 조사와 검색을 많이 한 후 적절한 방법을 찾았습니다.

var content_editor = CKEDITOR.instances['content']; 

content_editor.on('key', function() { 
    change_page = true; 
}); 
+1

텍스트 편집기 내부의 텍스트가 편집 명령 (예 : 실행 취소/다시 실행)으로 변경되는 경우를 고려하지 않음 – OviC

+0

@OviC 동의 함. 나는 그들을 위해 별도의 청취자를 만들 것입니다. 대부분 CKeditor에는 콜백이 있습니다. – RJD22

0

"폴링"할 수있는 checkDirty() 함수가 있습니다. 그렇지 않으면 SCAYT 플러그인을보고, 나는 그들이 키 스트로크를 모니터한다고 생각한다.

하지만 "공개"이벤트에 대해 잘 모릅니다. 체크 아웃하십시오. CKEDITOR.dom.event (DOM 이벤트 핸들러) CKEDITOR.event (내부 이벤트 핸들러)

2

jquery ckeditor 메서드를 사용했습니다. 여기

는 HTML입니다 :

<textarea id="txtMessage" class="editor" maxlength="500"></textarea> 

여기에 자바 스크립트입니다 : 도움이

try { 
     var config = 
      { 
       height: 180, 
       width: 515, 
       linkShowAdvancedTab: false, 
       scayt_autoStartup: true, 
       enterMode: Number(2), 
       toolbar_Full: [['Styles', 'Bold', 'Italic', 
               'Underline', 'SpellChecker', 'Scayt', 
               '-', 'NumberedList', 'BulletedList'], 
         ['Link', 'Unlink'], ['Undo', 'Redo', '-', 'SelectAll']] 

      }; 

     $('textarea.editor').ckeditor(config); 
     CKEDITOR.instances["txtMessage"].on("instanceReady", InstanceReadyEvent); 

    } 
    catch (err) { 
     alert('Error loading ck editor: ' + err); 
    } 

    function InstanceReadyEvent() { 
     this.document.on("keyup", function() { 

      var yourText = CKEDITOR.instances["txtMessage"].getData(); 
     }); 
    } 

희망.

관련 문제