15 Stimmen

Möglichkeit zu überprüfen, ob TinyMCE in WordPress aktiv ist

Ich arbeite an einem Plugin, das beim Einsatz von TinyMCE als visuellem Editor TinyMCE-Befehle verwendet, um Text in den Bereich zur Bearbeitung des Inhalts des Haupttexts einzufügen. Aktuell funktioniert es einfach durch Ausführung des Befehls. Wenn es funktioniert, ist TinyMCE aktiv, und wenn nicht, habe ich benutzerdefiniertes JS zum Arbeiten mit dem HTML-Editor.

Meine Frage jedoch: Gibt es einen Weg zu überprüfen, ob TinyMCE aktiv ist oder nicht, anstatt einfach den Befehl auszuführen und das Scheitern zu akzeptieren, wenn es nicht aktiv ist?

25voto

Daniel Bachhuber Punkte 653

Und... Ich habe die Frage für mich selbst beantwortet. Die Bedingung, die du testen möchtest, lautet wie folgt:

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

Der Trick ist, dass tinyMCE.activeEditor null zurückgibt, wenn TinyMCE nicht aktiviert ist. Du kannst die Methode isHidden() verwenden, um sicherzustellen, dass sie nicht ausgeführt wird, wenn du wieder in den HTML-Editor-Modus wechselst.

Dies ist auf der TinyMCE-Website und in den Foren schlecht dokumentiert.

7voto

Tici Punkte 71

Ja, ich habe diesen Code auf Wordpress gesehen: ABSPATH/wp-includes/js/autosave.js Datei

// (bool) ist der Rich-Editor aktiviert und aktiv
var rich = (typeof tinyMCE != "undefined") && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden();

2voto

Sisir Punkte 2487

Da diese Fragen in Suchmaschinen gerankt sind, denke ich, dass ich Daniels Antworten ein wenig erweitern sollte, um zu unterstützen, wenn wir mehrere Instanzen des WordPress-Editors auf einer einzigen Seite haben.

    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();

    };

Verwendungen

Wenn Sie nur den aktiven Editor überprüfen möchten

if(is_editor_active()){
    // Tätigkeiten ausführen
}

Wenn ein Editor mit einer bestimmten ID überprüft werden muss

if(is_editor_active('mycontent'){
    // Tätigkeiten ausführen
}

Ich hoffe, diese kleine Funktion wird anderen hilfreich sein :)

0voto

Md Tanjid Punkte 1

Laut WordPress editor.js können wir leicht überprüfen, ob :

    if ( window.wpActiveEditor ) {
       // editor aktiv
    }else {
       // nicht aktiv
    }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X