2013-05-12 44 views
6

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

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

输入文本时,这是工作,但命令执行时它不会触发(改变现有文本加粗为例)。

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

+0

我建议不要使用tinymce4除非是出于测试状态 – Thariama 2013-05-13 09:34:06

回答

4

migration guide,你可以找到下面的例子:

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

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

因此,一个问题是要得到正确的事件名称和正确的编辑器实例:) 的onExecCommand()事件变成“的execCommand”在v4中。在执行命令时

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

出于某种原因,这个事件触发了两次:

因此增加上执行命令的处理程序应该是这样的(以下执行代码时要确保编辑已经被初始化)。我想你会解决这个问题。

虽然此方法不使用jQuery绑定,但它对我有用,并且可能也会解决您的问题。

+0

哇,这“老事件“代码有点小......它认为它是红宝石。 – alxndr 2013-06-25 17:07:05