使用TinyMCE 4进入onExecCommand事件

时间:2013-05-12 19:39:22

标签: tinymce tinymce-4

我正在使用TinyMCE 4,但文档非常糟糕。我试图在另一个div(编辑器之外)中提供内容的实时预览。现在我正在听这些事件:

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

这在输入文本时有效,但在执行命令时不会触发(例如,将现有文本更改为粗体)。

在TinyMCE 3.x中看起来有一个onExecCommand事件可以完成我想要的事情。但我找不到任何关于如何监听全局jQuery事件的文档,就像我正在使用change和init一样。有谁知道它正在发射什么事件?

2 个答案:

答案 0 :(得分:4)

migration guide中,您可以找到以下示例:

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

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

所以一个问题是获得正确的事件名称和正确的编辑器实例:) onExecCommand()事件在v4中变为'ExecCommand'。

因此在命令执行时添加一个处理程序应该是这样的(确保在执行下面的代码时已经初始化了编辑器):

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

由于某种原因,执行命令时此事件会触发两次。我想你会克服这个问题。

虽然这种方法不使用jQuery绑定,但它对我有用,也可能解决你的问题。

答案 1 :(得分:1)

如果这对其他人有帮助,这里列出了tinymce 4允许的所有事件:

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