Ich entwickle ein Plug-in für CKEditor, das unmittelbar vor dem Speichern einige Änderungen am Inhalt des Editors vornehmen muss. Im FCKeditor habe ich dies unter Verwendung des Ereignisses erreicht, aber ich konnte noch keine entsprechende Methode in CKEditor finden. Ich hatte gehofft, dass es ein passendes Ereignis geben würde, aber es scheint nicht zu sein. Kennt jemand einen Weg, dies zu tun?Inhalt des Editors unmittelbar vor dem Speichern im CKEditor-Plug-in aktualisieren
Antwort
Sie könnten das Ereignis getData verwenden, aber seien Sie vorsichtig, weil es auch für interne Zwecke abgefeuert wird.
ich http://dev.fckeditor.net/ticket/5254 eingereicht habe Vorveranstaltung
In Verbindung mit dem Erstellen eines eigenen Handlers für das Submit-Ereignis des Formulars? –
Das wäre eine alternative Lösung. In der Tat, das ist die, die ich im Moment wählen würde, weil es einfacher sein kann, es richtig zu handhaben, bis ein richtiges Ereignis von CKEditor generiert wird (ich weiß nicht wirklich, was Sie tun wollen, also rate ich es.) muss etwas Komplexes sein, das erst nach dem Aktualisieren der Textarea gemacht werden muss) – AlfonsoML
Mein Plug-in erlaubt es einem Benutzer, Inhalte, die auf einem anderen Server gespeichert sind, in den HTML-Hauptinhalt einzubetten. Diese werden im Editor-Inhalt als Platzhalterbilder dargestellt, um zu verhindern, dass sie in CKEditor bearbeitet werden. Unmittelbar vor dem Speichern des Editors möchte ich diese Platzhalterbilder durch den von ihnen repräsentierten HTML-Inhalt ersetzen, und wenn der Editor geladen wird, möchte ich das spezielle HTML in Platzhalter konvertieren (was ich mit vorhandenen Ereignissen machen kann). Vielleicht gibt es einen anderen Ansatz, den ich nehmen sollte? –
oben Als Bindeglied erstellen haben nicht wirklich die Lösung auf substitude OnAfterLinkedFieldUpdate Ereignis ich einen kurzen Beitrag auf, wie um ihn herum zu gehen writen haben. Hier
ist die Form:
<form id="my_form" action="submit.php" method="post" name="my_form">
<textarea id="my_text" name="my_text"></textarea>
<input id="submitForm" type="submit" name="submitForm" value="Submit" />
</form>
JavaScript:
var formSubmitted = false;
$("#submitForm").live('click', function(event) {
if (formSubmitted === true) {
formSubmitted = false;
return;
}
event.preventDefault();
//put here function to edit content == OnAfterLinkedFieldUpdate
var editor = CKEDITOR.instances.my_text;
var html = editor.getData();
html.replace(searchvalue, newvalue);
editor.setData(html);
formSubmitted = true;
$(this).trigger('click');
});
Der Code ist here
Was 'save' Ereignis/Funktion verwenden Sie? Die Schaltfläche "Speichern"? –
Ja. Das Plug-In wird von Website-Besitzern verwendet, die bereits CKEditor eingerichtet haben, wie sie es für richtig halten. Daher würde ich mein Plug-in lieber so sauber wie möglich halten, was bedeutet, dass die Standard-Schaltfläche zum Speichern nicht ersetzt wird. Ich habe mir die Quelle angeschaut und meine beste Wette scheint es, dem Formular, das den Editor enthält, einen "submit" -Ereignishandler hinzuzufügen, der sich jedoch kaum als sauber qualifiziert. –