source

TinyMCE가 WordPress에서 활성 상태인지 확인하는 방법

manycodes 2023. 3. 2. 22:22
반응형

TinyMCE가 WordPress에서 활성 상태인지 확인하는 방법

TinyMCE가 Visual 에디터로 사용 중일 때 TinyMCE 명령을 사용하여 본문 콘텐츠 편집 영역에 텍스트를 삽입하는 플러그인을 작업 중입니다.현재는 명령어를 실행하는 것만으로 동작합니다.동작하면 TinyMCE가 활성화 되고 동작하지 않으면 HTML 에디터로 작업하기 위한 커스텀 JS가 있습니다.

단, TinyMCE가 활성화 되어 있는지 여부를 확인할 수 있는 방법은 명령어를 실행하기만 하고 실행하지 않을 때 장애가 발생하는 것이 아닙니다.

그리고... 내가 직접 답을 해줬지테스트하는 조건은 다음과 같습니다.

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

비결은 이다tinyMCE.activeEditorTinyMCE가 활성화되지 않은 경우 null을 반환합니다.를 사용할 수 있습니다.isHidden()HTML 편집기 모드로 다시 전환했을 때 실행 중이지 않은지 확인하는 방법.

이는 TinyMCE 웹사이트 및 포럼에서 제대로 문서화되어 있지 않습니다.

네, 워드프레스에서 ABSPATH/wp-includes/js/autosave.js 파일을 보았습니다.

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

이 질문들이 검색엔진에서 순위에 오르면서.한 페이지에 여러 워드프레스 에디터의 인스턴스가 있을 때 대니얼스의 답변을 조금 더 늘려야 할 것 같습니다.

    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()){
    // do stuff
}

특정 ID를 가진 편집기를 확인해야 하는 경우

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

이 작은 기능이 다른 사람에게 도움이 되었으면 합니다.

WordPress editor.js에 따르면 다음 사항을 쉽게 확인할 수 있습니다.

    if ( window.wpActiveEditor ) {
       // editor active
    }else {
       // not active
    }

언급URL : https://stackoverflow.com/questions/1179136/way-to-check-whether-tinymce-is-active-in-wordpress

반응형