无法再捕获ForeColor命令了,请注意4.1.4

NoB*_*ugs 2 javascript wordpress tinymce tinymce-4

如果您运行,Tinymce用于触发文本颜色更改事件:

tinymce.activeEditor.on('execCommand', function() {console.log(arguments);} )
Run Code Online (Sandbox Code Playgroud)

你会看到execCommand ForeColor,只要文本颜色改变就会运行.如果您查看TinyMCE-Textcolor插件,它似乎没有任何execCommands或任何方法来检测文本颜色何时更改.

nem*_*esv 7

TextColor插件不再触发execCommand事件,因为自提交以来它直接使用Formatter基础结构.所以你不能得到你的旧事件.

但是,您可以使用formatChanged格式化程序来提供回调:

tinymce.activeEditor.formatter.formatChanged('forecolor', function (isNew, args) {
    if (isNew)
    console.log("new color", args.node.style.color);
}, true)
Run Code Online (Sandbox Code Playgroud)

演示JSFiddle.

但即使您只选择一些已经着色的文本,这也会触发......所以很遗憾,这不是最佳选择.

当然formatter.apply可以用猴子修补来解雇旧ExecCommand事件:

var oldApply = tinymce.activeEditor.formatter.apply;

tinymce.activeEditor.formatter.apply = function apply(name, vars, node) {
    oldApply(name, vars, node);
    tinymce.activeEditor.fire('ExecCommand', {name: name, vars: vars});
}
Run Code Online (Sandbox Code Playgroud)

演示JSFiddle.

但这不可能在全球范围内完成,并且必须为每个tinymce编辑器实例重复,因此它再次不是最佳解决方案......