여기

2014-05-15 2 views
0

을 텍스트 영역을 추가/제거 할 수 AJAX를 사용하여 내 코드입니다 :여기

텍스트 영역이 라인에 내장되어
function OpenContentBuilder() 
{ 

    $.post("tools/tools_builder.php", { 
     _open_content_builder : 1 
    }, function(data) 
    { 
     $("#container").html(data); 

     // Go Back to Course Section List - Button 
     $("#course_builder_go_back").click(function() 
     { 
      tinyMCE.execCommand('mceRemoveEditor ', false, 'target_builder'); 
      InitCourseContentList() 
     }); 



     if (tinymce.editors.length < 1) { 

      tinymce.init({ 
       mode : "none", 
       width : 680, 
       height : 300, 
       selector : "textarea#target_builder", 
       theme : "modern" 
      }); 
     } else if (tinymce.editors.length > 0){ 
       tinyMCE.execCommand('mceAddEditor', true, 'target_builder'); 
     } else { 
      alert("Cannot load editor!"); 
     } 

    }); 

} 

다음 HTML가 가져온

$("#container").html(data);

다음과 같이 보입니다.

<div> 
    <textarea id="target_builder" ></textarea> 
</div> 

처음로드하면 작동합니다. 뒤로 버튼을 눌러 페이지의 다른 부분으로 이동 한 다음 다시 돌아 오면 (전체 페이지 URL은 변경되지 않습니다 : ajax으로 끝납니다), textarea은 편집기가 아닙니다.

tinymce.editors.length > 0 테스트에서 alert을 수행하면 (두 번째 이상의로드에서) 표시됩니다.

이 말을 참고하고 execCommand으로 인스턴스를 제거하고 추가해야하는 많은 질문이 있습니다. 올바르게 사용하고 있습니까?

답변

0

문제는 편집기 인스턴스를 제거하기 전에 포커스를 먼저 제거하지 못하는 것이 었습니다.

내가 이런 짓을 :

if (typeof tinyMCE != 'undefined') { 
     tinyMCE.execCommand('mceFocus', true, 'target_builder'); 
     tinyMCE.execCommand('mceRemoveEditor', true, 'target_builder'); 
    } 
5
내가 세례반 솔루션은 당신이) (tinyMCE.remove를 추가 그래서 실행에 다시 그들을 호출하기 전에 TinyMCE에 제거해야한다는 것입니다

; 그들을 제거합니다. 다음 호출에서 Tinymce가 나타납니다.