Tous les événements
Écoutez avec editor.attachEvent(name, handler) et arrêtez d’écouter avec editor.detachEvent(name, handler). Dans un gestionnaire, this est l’instance de l’éditeur. Quelques événements sont annulables : ils reçoivent d’abord un objet state, et définir state.returnValue = true indique à l’éditeur que vous l’avez traité.
Exemple
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);Édition et cycle de vie
| Événement | Le gestionnaire reçoit | Se déclenche quand |
|---|---|---|
ready | () | Depuis core 2.6.10. Une fois, après la construction de l’éditeur et le chargement de son contenu initial. Déclenché de façon asynchrone : un gestionnaire attaché juste après new RichTextEditor(...) le reçoit quand même ; un gestionnaire attaché plus tard est appelé au tick suivant. config.onready le reçoit aussi. |
aftersethtml | () | Depuis core 2.6.10. Après que setHTMLCode a remplacé le contenu (y compris avec { undoable: true }), une fois par appel, et lorsque l’éditeur revient de la vue source HTML. Pas pendant l’affichage de la vue source. Un chargement n’est pas une modification : aucun événement change ne suit, et les actualisations faites par votre gestionnaire font partie du document chargé. |
panelresized | (info) | Depuis core 2.6.11. Un panneau latéral rendu redimensionnable avec editor.makePanelResizable (commentaires, plan et similaires) a été redimensionné en faisant glisser son bord ou avec ArrowLeft / ArrowRight / Home / End. info vaut { panel, width } : l’élément panneau et sa nouvelle largeur en pixels. |
change | () | Le contenu a changé : saisie, commande, collage, annulation. Avec debounce : une rafale de frappes donne un seul événement. |
contentchange | () | Le contenu a changé, signalé par le plugin de sécurité du contenu après son propre passage. |
selectionchange | () | Le curseur s’est déplacé ou la sélection a changé, y compris lorsqu’un contrôle est sélectionné. |
focus | (event) | La zone d’édition a reçu le focus (focusin depuis le document modifiable). |
blur | (event) | La zone d’édition a perdu le focus (focusout). |
documentreplaced | (document) | Depuis core 2.6.10. Le cadre d’édition a été déplacé et possède maintenant un NOUVEAU document (certains plugins enveloppent la zone d’édition dans un panneau au démarrage). Les écouteurs liés avec editor.bindDocumentEvent / bindEditableEvent sont rattachés pour vous ; relisez tout ce que vous aviez conservé de getDocument() ou getEditable(). |
keydown | (event) | Une touche a été enfoncée dans la zone d’édition. Le KeyboardEvent natif est transmis. |
keyup | (event) | Une touche a été relâchée dans la zone d’édition. |
keypress | (event) | Une touche de caractère a été pressée dans la zone d’édition. |
resize | () | L’éditeur a été redimensionné, y compris par l’utilisateur faisant glisser le coin de redimensionnement. |
change_html_view | (isCodeMode) | L’éditeur est passé de la vue WYSIWYG à la vue source HTML, ou inversement. |
copyheadinglink | (url, headingId) | L’utilisateur a cliqué sur le bouton de lien à côté d’un titre (config.copyHeadingLink). url est l’adresse de la page avec #headingId ; l’éditeur a déjà tenté de la copier dans le presse-papiers. |
destroy | () | destroy() a été appelé. Déconnectez ici vos propres écouteurs et sockets. |
Commandes et boîtes de dialogue
| Événement | Le gestionnaire reçoit | Se déclenche quand |
|---|---|---|
exec_command | (state, command, value) | Une commande, quelle qu’elle soit, est sur le point de s’exécuter. Se déclenche pour chaque commande, après l’événement propre à la commande ci-dessous. Annulable : définissez state.returnValue = true pour la traiter vous-même. |
exec_command_<name> | (state, command, value) | Une commande nommée est sur le point de s’exécuter, par exemple exec_command_newdoc ou exec_command_bold. Utilisez-le pour remplacer cette commande. Annulable : définissez state.returnValue = true pour la traiter vous-même. |
customdialog | (state, name, message) | L’éditeur est sur le point d’afficher l’une de ses propres boîtes de dialogue ou alertes, par exemple uploadfailed, uploadtoobig, reachmaxlength. Affichez la vôtre à la place. Annulable : définissez state.returnValue = true pour la traiter vous-même. |
charlimit | ({ chars, words, overChars, overWords }) | Le contenu a dépassé une limite de caractères ou de mots définie par le plugin de statistiques. |
Envois de fichiers
| Événement | Le gestionnaire reçoit | Se déclenche quand |
|---|---|---|
uploadprogress | (file, loaded, total) | Des octets ont été envoyés, lorsque l’outil d’envoi intégré (file_upload_url) est utilisé et que le navigateur signale la progression. |
uploadretry | (file, attempt, error) | Un envoi a échoué et est en cours de nouvelle tentative, une fois par tentative. Voir uploadRetryCount. |
uploadcancel | (file, reason) | Un envoi a été annulé : "cancel" depuis cancelUploads(), "removed" quand son image a été supprimée, ou "destroy". |
Enregistrement automatique
| Événement | Le gestionnaire reçoit | Se déclenche quand |
|---|---|---|
autosaved | (timestamp) | config.autoSave a enregistré le contenu avec succès. |
autosavefailed | (error, attempt) | Un enregistrement automatique a échoué. attempt vaut 0 pour le premier échec, puis 1, 2… au fil des nouvelles tentatives. |
Commentaires, suivi des modifications et révisions
| Événement | Le gestionnaire reçoit | Se déclenche quand |
|---|---|---|
comment_added | ({ id, text, author }) | Un commentaire a été ajouté. |
comment_resolved | ({ id }) | Un commentaire a été résolu. |
commentsonlychanged | (name, isCommentsOnly) | L’éditeur est entré dans le mode commentaires uniquement ou en est sorti. |
review_decision_denied | (detail) | Un utilisateur sans autorisation a tenté d’accepter ou de rejeter une modification suivie. |
revision_snapshot | ({ id, label, isNamed, createdAt }) | Le plugin d’historique des révisions a stocké une version. |
revision_history_sync_error | (detail) | Le plugin d’historique des révisions n’a pas pu joindre son stockage. |
linkcheck | (issues) | Le vérificateur de liens a terminé un passage ; issues est le tableau des problèmes trouvés. |
Aperçu des builds compilés depuis les sources
Ces événements existent dans les builds plus récents compilés depuis les sources, mais pas dans tous les bundles publiés ni dans les ressources de démo actuelles de ce site. Utilisez un build du cœur et des plugins testé et assorti ; attacher un gestionnaire ne peut pas ajouter un événement à un runtime plus ancien.
Notifications d’événements selon la version
| Événement | Le gestionnaire reçoit | Se déclenche quand |
|---|---|---|
autolink | (href, typedText) | Builds du cœur plus récents compilés depuis les sources : après la conversion d’un texte saisi en lien. href est l’adresse obtenue ; typedText est le mot d’origine. Il s’agit d’une notification, et non d’un hook annulable avant la création du lien. Les cœurs publiés plus anciens peuvent ne pas le déclencher. |
comment_reacted | ({ id, emoji, user }) | Builds plus récents du plugin de réactions aux commentaires : une personne a ajouté ou retiré un emoji sur un commentaire. id est l’identifiant du commentaire et user l’identifiant de l’utilisateur courant, sous forme de chaîne. Il se déclenche aussi bien à l’ajout qu’au retrait d’une réaction ; lisez les réactions de l’entrée dans reviewLedger pour connaître l’état obtenu. Il n’envoie pas d’e-mail et n’autorise aucune opération côté serveur. |
Les événements d’envoi, d’enregistrement automatique et de relecture nécessitent que la fonctionnalité ou le plugin correspondant soit chargé. Consultez exec_command pour intercepter des commandes, Téléverser des fichiers pour les options d’envoi, et la référence de configuration pour autoSave.