我正在使用TinyMCE 4,但文档非常糟糕。我试图在另一个div(编辑器之外)中提供内容的实时预览。现在我正在听这些事件:
$(document).on('tinymce:changed tinymce:init', ...)
这在输入文本时有效,但在执行命令时不会触发(例如,将现有文本更改为粗体)。
在TinyMCE 3.x中看起来有一个onExecCommand事件可以完成我想要的事情。但我找不到任何关于如何监听全局jQuery事件的文档,就像我正在使用change和init一样。有谁知道它正在发射什么事件?
答案 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允许的所有事件: