6

TinyMCE 4 を使用していますが、ドキュメントがひどいです。別の div (エディターの外部) でコンテンツのライブ プレビューを提供しようとしています。今、私はこれらのイベントを聞いています:

$(document).on('tinymce:changed tinymce:init', ...)

これは、テキストが入力されたときに機能しますが、コマンドが実行されたときにトリガーされません (たとえば、既存のテキストを太字に変更します)。

TinyMCE 3.x には、私が望むことを行うonExecCommandイベントがあるようです。しかし、change と init で行っているように、グローバルな jQuery イベントをリッスンする方法に関するドキュメントが見つかりません。発火しているイベントを知っている人はいますか?

4

2 に答える 2

4

移行ガイドでは、次の例を見つけることができます。

// Old event
editor.onInit(editor, args) {
    // Custom logic
});

// New event
editor.on('init', function(args) {
    // Custom logic
});

したがって、1 つの問題は、正しいイベント名と正しいエディター インスタンスを取得することです:) onExecCommand()イベントは、v4 では「ExecCommand」になります。

したがって、コマンド実行時にハンドラーを追加すると、次のようになります (以下のコードを実行するときに、エディターが既に初期化されていることを確認してください)。

for (ed_id in tinymce.editors) {
    tinymce.editors[ed_id].on('ExecCommand', function(args) {
       alert(1);
    });
}

コマンドが実行されると、何らかの理由でこのイベントが 2 回発生します。この問題を克服すると思います。

この方法はjQueryバインディングを使用しませんが、私にとっては機能し、問題も解決する可能性があります.

于 2013-05-16T18:25:04.447 に答える
1

これが他の人に役立つ場合に備えて、tinymce 4 が許可するすべてのイベントのリストを次に示します。

http://www.tinymce.com/wiki.php/api4:class.tinymce.Editor

于 2014-01-29T16:09:04.700 に答える