2013-05-21 2 views
2

버튼이 들어있는 포스트 편집기 바로 아래에 metabox을 추가하는 Wordpress 플러그인을 만들고 있습니다. 플러그인은 닫는 </body> 태그 바로 아래에 Javascript 파일을로드합니다. 나는 플러그인을 달성하기 위해 노력하고 어떤 순간WP - JS - Tinymce 편집기의 인스턴스 가져 오기

목적

은 간단합니다. 사용자가 에디터에 컨텐츠를 입력 한 후 메타 버튼 내의 버튼을 클릭하면 에디터의 컨텐츠를 수정하고 싶습니다.

JS CODE의 가장 간단한 형태에서

:

jQuery(document).ready(function($) { 
    $('#button').on('click', function(e) { 
     e.preventDefault(); 

     var editor = tinyMCE.get("content"); 
     editor.setContent(some_content); 
    }); 
}); 

PROBLEM

문제가 있음 editor 변수 복귀 undefined. 내가

을 시도 무엇 널

: "내용"
editors : []
activeEditor 불을 지르고

wpActiveEditor

을 (var editor을 설정하려고 할 때) Tinymce의 문서에서 발견 된 많은, 많은 것들 (또한 많은 작은 조정)을 시도했습니다. 여기에 Stackoverflow하지만 문제는 여전히 동일하게 유지됩니다.

도움이 될 것입니다.

추신. 콘텐츠 테스트 영역은 테스트를 실행할 때 볼 수 있습니다.

답변

9

"텍스트"모드와 편집기를 처음로드 활성, TinyMCE에 초기화되지 않습니다 때 "비주얼"모드와 달리, 그러므로 당신이 tinyMCE.get()을 사용할 수 없습니다.

그래서 (내가 "텍스트"모드에서 테스트 유지했다대로 실제로 "비주얼"모드에서 작동 것으로 나타났습니다하지 않았다), 조건문 먼저 결정하는 것이 필요하다 어떤 탭이 활성 상태인지. 나는이 방법으로 내 문제를 해결 :

function setEditorContent(val) { 
    var $_editorTextArea = $('#content'); 
    $_editorTextArea.is(':visible') ? $_editorTextArea.val(val) : tinyMCE.get('content').setContent(val); 
} 

희망이 대답은 약간의 두통 :

+0

해결책을 공유하기 위해 +1 – Thariama

+0

오 마이 갓 나는 지금 키스를 할 수 있습니다 !! 감사! – IanDess

+0

가 wp 3.8에서 나에게 적합하지 않습니다. – Pons

1

글쎄, 라이브 예제가 많이 도움이 될 것입니다. 이 방법은 내가 추측 할 수 있습니다 : 당신이 원하는 편집기를 얻을 수없는 것처럼 조금 보인다. 당신은 대부분의 경우에 (당신의 편집자 soure의 HTML 요소의 ID를 확인이를 확인하려면 사용하고있는 에디터 ID가 편집기 의 ID

  1. 되지

    : 내 마음에 와서 두 가지 이유가있다 id가 설정되어 있지 않으면 "콘텐츠"가 기본값으로 사용됩니다.

  2. 편집기가 전혀 초기화되지 않았습니다. 이것을 확인하려면 javascript 콘솔에서 console.log (tinymce.editors)를 사용할 수 있습니다. 에디터가 초기화되지 않으면 빈 배열이 생깁니다.

+0

가 감사를 방지 할 수 있습니다. 당신이 상상할 수 있듯이, Wordpress가 포함되어 있기 때문에 살아있는 예제는 까다 롭습니다. Wordpress에서 닫는 본문 태그 앞에 위의 Javascript를 추가하면 트릭을 수행 할 수 있습니다. 당신의 대답에 답하기 위해서 : 1. 나는 실제로'content'가 편집자의 id (textarea 's)이고 2인지를 확인합니다. 위에서 언급했듯이 방화 광 결과는'editor '를 빈 배열로 표시합니다. 하지만 페이지가로드 된 후 테스트 할 때 아직 초기화되지 않은 이유는 무엇입니까? –

+0

문제를 발견했습니다! 아래 답변을 게시했습니다. 도와 주셔서 감사합니다 ... –

관련 문제