Ereignis für ckeditor-Inhalt geändert

Lesezeit: 3 Minuten

Wie können wir nach Möglichkeit darauf reagieren, wenn sich Inhalte von ckeditor ändern? Zum Beispiel ist bereits Text in den Inhalt des Ckeditors, auch bekannt als Textarea, eingefügt, wenn die Seite geöffnet wird. Danach tippe ich etwas mehr oder lösche einen Teil dieses Textes. Gibt es ein Ereignis, das ich auslösen kann, um eine Variable zu ändern, wenn der Text geändert wird?

Ich habe dies für normale Textareas:

$("input,textarea").on("input", function () {
    booleanvar= true;
});

Ich habe irgendwo eine mögliche Lösung gesehen, die Folgendes hatte:

$('.ckeditor').ckeditorGet().on('key', function (e) {
    //some code
});

Habe es versucht, hat aber nicht funktioniert. Und ja, ich weiß, dass der Textbereich meines Ckeditors “ckeditor” als Klasse hat, das ist also nicht der Grund dafür, dass es nicht funktioniert.

So etwas wie diese Beispiele kann ich verwenden, um zu einer Art Textänderungsereignis von ckeditor zu gelangen?

  • mögliches Duplikat von How to listen to basic events in CKEditor?

    – A. Rama

    22. Januar 2015 um 11:20 Uhr

Ja, das ist sehr praktisch change auch das kann man sich anhören. Dokumentation hier: http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-change

Verwenden Sie es zum Beispiel so (ändern Sie editor1 in Ihre Editor-Instanz):

CKEDITOR.instances.editor1.on('change', function() { 
    console.log("TEST");
});

  • Das funktioniert wahrscheinlich, aber die Methode wird nur aufgerufen, wenn die Seite geladen wird (in diesem Moment ist der Ckeditor noch nicht instanziiert) und wird dann nicht mehr aufgerufen, soll das passieren? Beachten Sie, dass ich den Textbereich für ckeditor ersetze, indem ich einfach die Klasse = “ckeditor” des Textbereichs setze

    – Micael Florencio

    22. Januar 2015 um 15:03 Uhr


  • Ok, das ist gelöst, musste nur hinzugefügt werden CKEDITOR.replace( 'editor1' ); kurz vor dem CKEDITOR.instances.editor1.on.... damit es bereits instanziiert wäre. Funktioniert danach gut

    – Micael Florencio

    22. Januar 2015 um 15:24 Uhr

  • Nur eine Anmerkung: Rückgeld Ereignis wird von ausgelöst rückgängig machen Plugin, also müssen Sie das Plugin rückgängig machen, um das Änderungsereignis zu verwenden.

    – Marek Lewandowski

    23. Januar 2015 um 10:23 Uhr

  • Versuchte eine Reihe von Implementierungen, aber nur diese funktionierte (Version 4.5)

    – Capozzi tätscheln

    21. Oktober 2015 um 20:29 Uhr

  • @MarekLewandowski danke für diesen Hinweis.. wusste nicht einmal, dass ich das Undo-Plugin vergessen habe.. diese Notiz sollte zu docs hinzugefügt werden

    – Kann Rau

    16. April 2016 um 4:29 Uhr

Ich hoffe, das könnte jemand anderem helfen, der wie ich auf diesen Beitrag stößt. Wenn Sie CKEditor5 verwenden, können Sie Folgendes versuchen:

ClassicEditor.create(document.querySelector('#editor'))
.then(editor => {
    editor.model.document.on('change:data', (evt, data) => {
        console.log(editor.getData());
    });
})
.catch(error => {
    console.error('Editor initialization error.', error);
});

  • Hilft mir!! Vielen Dank

    – La Fortuna

    25. August 2021 um 20:48 Uhr

  • Funktioniert perfekt! Vielen Dank.

    – Ammar Abdul Aziz

    13. Dezember 2021 um 8:52 Uhr

Daves Benutzeravatar
David

Es hilft mir sehr, für den Wechsel von CKEDITOR.

<textarea id="ckeditor_textarea " name="ckeditor_textarea ">Add Yore Data</textarea>

<script type="text/javascript">
var editor = CKEDITOR.replace( 'ckeditor_textarea ', {});
// editor is object of your CKEDITOR
editor.on('change',function(){
    console.log("test");
});
</script>

Wenn Sie viel Ckeditor (Version 4) auf einer Seite haben, können Sie diesen Code verwenden:

CKEDITOR.on('instanceCreated', function(event) {
 var editor = event.editor,
 element = editor.element;
 editor.on('change', function() {
 console.log(element.getId());
 });
 });

Einfache jQuery-Ereignisbindung für CKEditor4

$.fn.onDataChange = function (func) {
    var func = func || function () { };
    CKEDITOR.instances[$(this).attr('id')].on('change', function () {
        func();
    });
}

1435660cookie-checkEreignis für ckeditor-Inhalt geändert

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy