2009-07-24 2 views
13

TinyMCE를 비주얼 편집기로 사용하는 경우 TinyMCE 명령을 사용하여 본문 내용 편집 영역에 텍스트를 삽입하는 플러그인을 작성하고 있습니다. 현재는 명령 실행만으로 작동합니다. 작동한다면 TinyMCE가 활성화되고 그렇지 않으면 HTML 편집기를 사용하기위한 사용자 정의 JS가 있습니다.WordPress에서 TinyMCE가 활성화되어 있는지 확인하는 방법

질문 : 그렇지만 TinyMCE가 활성 상태인지 여부를 확인하는 방법이 있습니까? 명령을 실행하는 대신 활성화되어 있지 않은 경우 실패합니다.

답변

23

그리고 ... 나 자신에 대한 질문에 대답했습니다.

is_tinyMCE_active = false; 
if (typeof(tinyMCE) != "undefined") { 
    if (tinyMCE.activeEditor == null || tinyMCE.activeEditor.isHidden() != false) { 
    is_tinyMCE_active = true; 
    } 
} 

트릭은 TinyMCE에 활성화되지 않은 경우 tinyMCE.activeEditor 반환 널 (null)이다 다음과 같이 당신이 테스트 할 조건입니다. isHidden() 메서드를 사용하여 HTML 편집기 모드로 다시 전환했을 때 실행되지 않는지 확인할 수 있습니다.

이것은 TinyMCE 웹 사이트 및 포럼에서 잘 설명되어 있지 않습니다.

+0

탁신 이것은 잘 돌아갔다. :) – Haris

+0

흠이 나를 위해 작동하지 않습니다. HTML 모드 또는 비주얼 모드에 관계없이 어떤 이유로 든 사실입니다. 이 문제가 발생한 사람은 누구입니까? – Shaan

+1

내 문제는 tinyMCE 편집기가로드되지 않았고 완전히로드되기 전에 검사한다는 것입니다. 이 검사를 수행하기 전에로드가 완료 될 때까지 어떻게 기다려야합니까? – Shaan

7

예, 나는 워드 프레스에 해당 코드를 보았다 : ABSPATH// JS/autosave.js 검색 엔진에서 순위가이 질문으로

// (bool) is rich editor enabled and active 
var rich = (typeof tinyMCE != "undefined") && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden(); 
2

파일 WP는-이 포함되어 있습니다. Daniels의 답변을 한 페이지에 여러 개의 Wordpress 편집기가있을 때 조금씩 지원해야한다고 생각합니다. 당신은 단지 필요한 특정 ID와 편집자가 확인 될 경우 활성 편집기

if(is_editor_active()){ 
    // do stuff 
} 

를 확인해야하는 경우

var is_editor_active = function(editor_id){ 

     if(typeof tinyMCE == 'undefined'){ 
      return false; 
     } 

     if(typeof editor_id == 'undefined'){ 
      editor = tinyMCE.activeEditor; 
     }else{ 
      editor = tinyMCE.EditorManager.get(editor_id); 
     } 

     if(editor == null){ 
      return false; 
     } 

     return !editor.isHidden(); 

    }; 

을 사용 나는이 희망

if(is_editor_active('mycontent'){ 
    // do stuff 
} 

작은 기능은 다른 사람들에게 도움이 될 것입니다 :)