← Gesamte Dokumentation

Alle Ereignisse

Mit editor.attachEvent(name, handler) reagieren Sie auf Ereignisse, mit editor.detachEvent(name, handler) beenden Sie das. Innerhalb eines Handlers ist this die Editor-Instanz. Einige Ereignisse lassen sich abbrechen: Sie erhalten zuerst ein state-Objekt, und mit state.returnValue = true teilen Sie dem Editor mit, dass Sie das Ereignis behandelt haben.

Beispiel

editor.attachEvent("change", function () {
    document.getElementById("dirty").hidden = false;
});

// Some events let you take over. Set state.returnValue = true to say "handled",
// and the editor skips its own action.
editor.attachEvent("exec_command_newdoc", function (state, cmd, value) {
    state.returnValue = true;
    this.setHTMLCode("<p>New document</p>");
});

editor.detachEvent("change", myHandler);

Bearbeitung und Lebenszyklus

EreignisHandler erhältWird ausgelöst, wenn
ready()Ab Core 2.6.10. Einmal, nachdem der Editor aufgebaut und sein Anfangsinhalt geladen ist. Asynchron ausgelöst, sodass ein direkt nach new RichTextEditor(...) angehängter Handler es noch erhält; ein später angehängter wird im nächsten Tick aufgerufen. Auch config.onready erhält es.
aftersethtml()Ab Core 2.6.10. Nachdem setHTMLCode den Inhalt ersetzt hat (auch mit { undoable: true }), einmal pro Aufruf, und wenn der Editor aus der HTML-Quelltextansicht zurückwechselt. Nicht, solange die Quelltextansicht angezeigt wird. Ein Laden ist keine Bearbeitung: Es folgt kein change-Ereignis, und Aktualisierungen durch Ihren Handler werden Teil des geladenen Dokuments.
panelresized(info)Ab Core 2.6.11. Ein mit editor.makePanelResizable in der Größe veränderbar gemachter Seitenbereich (Kommentare, Gliederung und Ähnliches) wurde durch Ziehen am Rand oder mit ArrowLeft / ArrowRight / Home / End in der Größe geändert. info ist { panel, width }, das Panel-Element und seine neue Breite in Pixeln.
change()Der Inhalt hat sich geändert: Tippen, ein Befehl, Einfügen, Rückgängig. Per Debounce verzögert, sodass eine Folge von Tastenanschlägen ein einziges Ereignis ist.
contentchange()Der Inhalt hat sich geändert, gemeldet vom Plugin für Inhaltssicherheit nach seinem eigenen Durchlauf.
selectionchange()Der Cursor hat sich bewegt oder die Auswahl hat sich geändert, auch wenn ein Steuerelement ausgewählt wird.
focus(event)Der Bearbeitungsbereich hat den Fokus erhalten (focusin aus dem bearbeitbaren Dokument).
blur(event)Der Bearbeitungsbereich hat den Fokus verloren (focusout).
documentreplaced(document)Ab Core 2.6.10. Der Bearbeitungsrahmen wurde verschoben und hat jetzt ein NEUES Dokument (manche Plugins legen den Bearbeitungsbereich beim Start in ein Panel). Mit editor.bindDocumentEvent / bindEditableEvent gebundene Listener werden für Sie neu angehängt; lesen Sie alles neu, was Sie aus getDocument() oder getEditable() aufbewahrt haben.
keydown(event)Eine Taste wurde im Bearbeitungsbereich gedrückt. Das native KeyboardEvent wird durchgereicht.
keyup(event)Eine Taste wurde im Bearbeitungsbereich losgelassen.
keypress(event)Eine Zeichentaste wurde im Bearbeitungsbereich gedrückt.
resize()Die Größe des Editors wurde geändert, auch durch Ziehen der Ecke zur Größenänderung.
change_html_view(isCodeMode)Der Editor hat zwischen der WYSIWYG-Ansicht und der HTML-Quelltextansicht gewechselt.
copyheadinglink(url, headingId)Der Benutzer hat auf die Link-Schaltfläche neben einer Überschrift geklickt (config.copyHeadingLink). url ist die Seitenadresse mit #headingId; der Editor hat bereits versucht, sie in die Zwischenablage zu kopieren.
destroy()destroy() wurde aufgerufen. Trennen Sie hier Ihre eigenen Listener und Sockets.

Befehle und Dialoge

EreignisHandler erhältWird ausgelöst, wenn
exec_command(state, command, value)Ein beliebiger Befehl wird gleich ausgeführt. Wird für jeden Befehl ausgelöst, nach dem befehlsspezifischen Ereignis unten. Abbrechbar: Setzen Sie state.returnValue = true, um ihn selbst zu behandeln.
exec_command_<name>(state, command, value)Ein bestimmter Befehl wird gleich ausgeführt, z. B. exec_command_newdoc, exec_command_bold. Damit ersetzen Sie diesen Befehl. Abbrechbar: Setzen Sie state.returnValue = true, um ihn selbst zu behandeln.
customdialog(state, name, message)Der Editor zeigt gleich einen seiner eigenen Dialoge oder Hinweise an, z. B. uploadfailed, uploadtoobig, reachmaxlength. Zeigen Sie stattdessen Ihren eigenen an. Abbrechbar: Setzen Sie state.returnValue = true, um ihn selbst zu behandeln.
charlimit({ chars, words, overChars, overWords })Der Inhalt hat ein vom Statistik-Plugin gesetztes Zeichen- oder Wortlimit überschritten.

Uploads

EreignisHandler erhältWird ausgelöst, wenn
uploadprogress(file, loaded, total)Bytes wurden gesendet, wenn der eingebaute Uploader (file_upload_url) verwendet wird und der Browser den Fortschritt meldet.
uploadretry(file, attempt, error)Ein Upload ist fehlgeschlagen und wird wiederholt, einmal pro Versuch. Siehe uploadRetryCount.
uploadcancel(file, reason)Ein Upload wurde abgebrochen: "cancel" durch cancelUploads(), "removed", wenn sein Bild gelöscht wurde, oder "destroy".

Automatisches Speichern

EreignisHandler erhältWird ausgelöst, wenn
autosaved(timestamp)config.autoSave hat den Inhalt erfolgreich gespeichert.
autosavefailed(error, attempt)Ein automatisches Speichern ist fehlgeschlagen. attempt ist beim ersten Fehler 0, dann 1, 2 … bei den Wiederholungen.

Kommentare, Änderungsverfolgung und Versionen

EreignisHandler erhältWird ausgelöst, wenn
comment_added({ id, text, author })Ein Kommentar wurde hinzugefügt.
comment_resolved({ id })Ein Kommentar wurde als erledigt markiert.
commentsonlychanged(name, isCommentsOnly)Der Editor hat den Modus „nur Kommentare“ betreten oder verlassen.
review_decision_denied(detail)Ein Benutzer ohne Berechtigung hat versucht, eine verfolgte Änderung anzunehmen oder abzulehnen.
revision_snapshot({ id, label, isNamed, createdAt })Das Plugin für den Versionsverlauf hat eine Version gespeichert.
revision_history_sync_error(detail)Das Plugin für den Versionsverlauf konnte seinen Speicher nicht erreichen.
linkcheck(issues)Die Linkprüfung hat einen Durchlauf beendet; issues ist das Array der gefundenen Probleme.

Vorschau aus Quell-Builds

Diese Ereignisse gibt es in neueren Builds aus den Quellen, nicht in jedem veröffentlichten Bundle und nicht in den aktuellen Demo-Dateien dieser Website. Verwenden Sie einen passenden, getesteten Build von Core und Plugins; das Anhängen eines Handlers kann einer älteren Laufzeit kein Ereignis hinzufügen.

Versionsabhängige Ereignisbenachrichtigungen

EreignisHandler erhältWird ausgelöst, wenn
autolink(href, typedText)Neuere Core-Builds aus den Quellen: nachdem getippter Text in einen Link umgewandelt wurde. href ist die resultierende Adresse; typedText ist das ursprüngliche Wort. Das ist eine Benachrichtigung, kein abbrechbarer Hook vor der Verlinkung. Ältere veröffentlichte Cores lösen es möglicherweise nicht aus.
comment_reacted({ id, emoji, user })Neuere Builds des Plugins für Kommentarreaktionen: Jemand hat ein Emoji an einem Kommentar umgeschaltet. id ist die ID des Kommentars und user die ID des aktuellen Benutzers als String. Es wird sowohl beim Hinzufügen als auch beim Entfernen einer Reaktion ausgelöst; den resultierenden Zustand lesen Sie aus den Reaktionen des Eintrags in reviewLedger. Es sendet keine E-Mail und autorisiert keine Serveroperation.

Ereignisse zu Upload, automatischem Speichern und Review setzen voraus, dass die entsprechende Funktion bzw. das Plugin geladen ist. Siehe exec_command zum Abfangen von Befehlen, Dateien hochladen für die Upload-Optionen und die Konfigurationsreferenz für autoSave.