Ich bin mir nicht sicher, warum ich das nicht finden konnte, aber weiß jemand, wie man die Eingabe des TinyMCE-Editors erhält? Ich verwende es im Frontend und möchte in der Lage sein, alles, was der Benutzer in TinyMCE eingegeben hat, in einer Datenbank zu speichern, kann aber nicht den besten Weg finden, um diesen Wert zu erfassen.
Die beiden Lösungen, die ich mit einigem Erfolg implementiert habe, sind:
tinyMCE.activeEditor.getContent();
- Dieser scheint nur den Wert des visuellen Editors zu erhalten. Wenn ich also im HTML-Editor bin und Änderungen vornehme und dann speichere, werden sie nicht übernommen.$('#html_text_area_id').val();
- Dies ist das Gegenteil, es scheint nur den Wert des HTML-Editors zu erhalten.
Ich weiß, dass es einen besseren Weg gibt - ich kann ihn einfach nicht finden ...
ps Ja, ich werde Sicherheitsmaßnahmen implementieren, um sicherzustellen, dass Benutzer die Datenbank nicht in die Luft jagen können.
val()
Antworten:
Ok, anscheinend verfolgt WordPress, welche Art von Editor (visuell oder HTML) als Klasse aktiv ist, die dem Content Wrapper hinzugefügt wird. Hier ist eine Lösung, mit der Sie die neuesten Inhalte im Editor erhalten
quelle
Das ist der Code, den ich meinem Javascript unmittelbar vor dem Absenden des Formulars hinzugefügt habe.
quelle
Das hat bei mir funktioniert:
Wo Beschreibung die ID des Tinymce-Editors und der Code nach dem Anderen der akzeptierten Antwort ist, hat bei mir nicht funktioniert.
quelle
Ich brauchte viel mehr Code, um es zum Laufen zu bringen, und bekam auch einen Javascript-Fehler:
Deprecated TinyMCE API call: <target>.onKeyUp.add(..)
Dies wurde durch ein WordPress-Upgrade von 3.x auf 4 verursacht. Also musste ichclear my browser cache
zuerst.Zuerst habe ich dem wp-Filter
tiny_mce_before_init
in meiner Datei functions.php einen Rückruf hinzugefügt. Dadurch konnte ich eine js-Rückruffunktion hinzufügen, die beim Initialisieren der Editoren ausgelöst wird:Als nächstes die Javascript-Funktion, um mit dem Inhalt zu tun, was immer gewünscht wird, wenn er sich ändert. Fügen Sie dieses Javascript mit wp_enqueue_scripts zu der gewünschten Seite hinzu.
Der Code funktionierte, als ich den Editor wie folgt auf eine beliebige Seite druckte:
quelle
Sie können den Inhalt abhängig vom aktuellen Modus des Editors abrufen.
Die Registerkarte " Visual" enthält eine Klasse, mit
switch-tmce
der Sie sie als Registerkarte identifizieren können. Sie würden wissen, dass es fokussiert wurde, wenn es die hellere Hintergrundfarbe hat. Sie können damit auch bestimmen, welche der beiden Registerkarten aktiv ist.Dies ist eine adaptive Lösung, die auf der Antwort von Bainternet basiert . Es gibt wahrscheinlich andere bessere Möglichkeiten, aber diese hat bei mir gut funktioniert.
quelle
Sie können auch
addeditor
event verwenden:TinyMCE 'Additor'-Ereignisdokumentation
quelle