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

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

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

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

请您参考如下方法:

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 绑定(bind),但它对我有用,也可能会解决您的问题。


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!