すべてのイベント
イベントは editor.attachEvent(name, handler) で待ち受け、editor.detachEvent(name, handler) で待ち受けを停止します。ハンドラー内では、this はエディターのインスタンスです。いくつかのイベントはキャンセル可能です。それらは最初に state オブジェクトを受け取り、state.returnValue = true を設定すると、処理済みであることをエディターに伝えられます。
例
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);編集とライフサイクル
| イベント | ハンドラーが受け取るもの | 発生するタイミング |
|---|---|---|
ready | () | core 2.6.10 以降。エディターが構築され、初期コンテンツが読み込まれた後に 1 回だけ発生します。非同期に発生するので、new RichTextEditor(...) の直後にアタッチしたハンドラーでも受け取れます。それより後にアタッチしたハンドラーは、次のティックで呼び出されます。config.onready もこれを受け取ります。 |
aftersethtml | () | core 2.6.10 以降。setHTMLCode がコンテンツを置き換えた後({ undoable: true } の場合も含む)に呼び出しごとに 1 回、またエディターが HTML ソース表示から戻ったときに発生します。ソース表示の間は発生しません。読み込みは編集ではないので、change イベントは続いて発生せず、ハンドラーが行った更新は読み込まれた文書の一部になります。 |
panelresized | (info) | core 2.6.11 以降。editor.makePanelResizable でサイズ変更可能にしたサイドパネル(コメント、アウトラインなど)が、端のドラッグまたは ArrowLeft / ArrowRight / Home / End でサイズ変更されたときに発生します。info は { panel, width } で、パネルの要素とピクセル単位の新しい幅です。 |
change | () | 入力、コマンド、貼り付け、元に戻すなどでコンテンツが変わったとき。デバウンスされるので、続けて入力しても 1 回のイベントになります。 |
contentchange | () | コンテンツが変わったとき。content-safety プラグインが自身の処理の後に通知します。 |
selectionchange | () | キャレットが移動したとき、または選択範囲が変わったとき(コントロールが選択された場合を含む)。 |
focus | (event) | 編集領域がフォーカスを得たとき(編集可能な文書からの focusin)。 |
blur | (event) | 編集領域がフォーカスを失ったとき(focusout)。 |
documentreplaced | (document) | core 2.6.10 以降。編集用のフレームが移動し、新しい文書を持つようになったとき(起動時に編集領域をパネルで包むプラグインがあります)。editor.bindDocumentEvent / bindEditableEvent でバインドしたリスナーは自動的に付け直されます。getDocument() や getEditable() から取得して保持していたものは、取得し直してください。 |
keydown | (event) | 編集領域内でキーが押されたとき。ネイティブの KeyboardEvent がそのまま渡されます。 |
keyup | (event) | 編集領域内でキーが離されたとき。 |
keypress | (event) | 編集領域内で文字キーが押されたとき。 |
resize | () | エディターのサイズが変更されたとき(ユーザーがサイズ変更用の角をドラッグした場合を含む)。 |
change_html_view | (isCodeMode) | エディターが WYSIWYG 表示と HTML ソース表示を切り替えたとき。 |
copyheadinglink | (url, headingId) | ユーザーが見出しの横にあるリンクボタン(config.copyHeadingLink)をクリックしたとき。url は #headingId 付きのページのアドレスで、エディターはすでにそれをクリップボードにコピーしようとしています。 |
destroy | () | destroy() が呼び出されたとき。ここで独自のリスナーやソケットを切断してください。 |
コマンドとダイアログ
| イベント | ハンドラーが受け取るもの | 発生するタイミング |
|---|---|---|
exec_command | (state, command, value) | 何らかのコマンドが実行されようとしているとき。すべてのコマンドで、下記のコマンド固有のイベントの後に発生します。キャンセル可能:自分で処理する場合は state.returnValue = true を設定します。 |
exec_command_<name> | (state, command, value) | 名前付きの 1 つのコマンドが実行されようとしているとき(exec_command_newdoc、exec_command_bold など)。そのコマンドを置き換えるために使います。キャンセル可能:自分で処理する場合は state.returnValue = true を設定します。 |
customdialog | (state, name, message) | エディターが独自のダイアログやアラート(uploadfailed、uploadtoobig、reachmaxlength など)を表示しようとしているとき。代わりに独自のものを表示できます。キャンセル可能:自分で処理する場合は state.returnValue = true を設定します。 |
charlimit | ({ chars, words, overChars, overWords }) | コンテンツが、statistics プラグインで設定した文字数または単語数の制限を超えたとき。 |
アップロード
| イベント | ハンドラーが受け取るもの | 発生するタイミング |
|---|---|---|
uploadprogress | (file, loaded, total) | 組み込みのアップローダー(file_upload_url)を使っていて、ブラウザーが進捗を報告し、バイトが送信されたとき。 |
uploadretry | (file, attempt, error) | アップロードが失敗して再試行されるとき。試行ごとに 1 回発生します。uploadRetryCount を参照してください。 |
uploadcancel | (file, reason) | アップロードがキャンセルされたとき。理由は、cancelUploads() による "cancel"、画像が削除された場合の "removed"、または "destroy" です。 |
自動保存
| イベント | ハンドラーが受け取るもの | 発生するタイミング |
|---|---|---|
autosaved | (timestamp) | config.autoSave がコンテンツを正常に保存したとき。 |
autosavefailed | (error, attempt) | 自動保存が失敗したとき。attempt は最初の失敗では 0 で、再試行するたびに 1、2… となります。 |
コメント、変更履歴、リビジョン
| イベント | ハンドラーが受け取るもの | 発生するタイミング |
|---|---|---|
comment_added | ({ id, text, author }) | コメントが追加されたとき。 |
comment_resolved | ({ id }) | コメントが解決済みになったとき。 |
commentsonlychanged | (name, isCommentsOnly) | エディターがコメントのみのモードに入ったとき、またはそれを終了したとき。 |
review_decision_denied | (detail) | 権限のないユーザーが、変更履歴の変更を承認または却下しようとしたとき。 |
revision_snapshot | ({ id, label, isNamed, createdAt }) | リビジョン履歴プラグインがバージョンを保存したとき。 |
revision_history_sync_error | (detail) | リビジョン履歴プラグインが保存先にアクセスできなかったとき。 |
linkcheck | (issues) | リンクチェッカーが 1 回の確認を終えたとき。issues は見つかった問題の配列です。 |
ソースビルドのプレビュー
これらのイベントは新しいソースビルドに存在し、リリースされたすべてのバンドルや、このサイトの現在のデモ用アセットにあるわけではありません。対応するテスト済みのコア/プラグインのビルドを使ってください。ハンドラーをアタッチしても、古いランタイムにイベントを追加することはできません。
バージョンに依存するイベント通知
| イベント | ハンドラーが受け取るもの | 発生するタイミング |
|---|---|---|
autolink | (href, typedText) | 新しいソースのコアビルド:入力したテキストがリンクに変換された後。href は変換後のアドレス、typedText は元の単語です。これは通知であり、リンクにする前に呼ばれるキャンセル可能なフックではありません。リリース済みの古いコアでは発生しない場合があります。 |
comment_reacted | ({ id, emoji, user }) | 新しい comment-reaction プラグインのビルド:誰かがコメントの絵文字を切り替えたとき。id はコメントの ID、user は現在のユーザーの ID(文字列)です。リアクションの追加と削除の両方で発生します。結果の状態は、reviewLedger のエントリの reactions から読み取ってください。メールを送信したり、サーバー側の操作を許可したりするものではありません。 |
アップロード、自動保存、レビューのイベントには、対応する機能やプラグインが読み込まれている必要があります。コマンドを横取りする方法については exec_command を、アップロードのオプションについては ファイルのアップロードを、autoSave については 設定リファレンスを参照してください。