Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';tinymce 4.1.4,我再也听不到前景色命令了_Javascript_Wordpress_Tinymce_Tinymce 4 - Fatal编程技术网

Javascript Can';tinymce 4.1.4,我再也听不到前景色命令了

Javascript Can';tinymce 4.1.4,我再也听不到前景色命令了,javascript,wordpress,tinymce,tinymce-4,Javascript,Wordpress,Tinymce,Tinymce 4,Tinymce用于触发文本颜色更改事件,如果您运行: tinymce.activeEditor.on('execCommand', function() {console.log(arguments);} ) 您将看到execCommand ForeColor,在文本颜色更改时运行。如果查看TinyMCE Textcolor插件,它似乎没有任何execCommands或任何检测文本颜色变化的方法。Textcolor插件不再触发execCommand事件,因为它直接使用。因此,您无法获取旧事件

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

tinymce.activeEditor.on('execCommand', function() {console.log(arguments);} )

您将看到execCommand ForeColor,在文本颜色更改时运行。如果查看TinyMCE Textcolor插件,它似乎没有任何execCommands或任何检测文本颜色变化的方法。

Textcolor插件不再触发
execCommand
事件,因为它直接使用。因此,您无法获取旧事件

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

tinymce.activeEditor.formatter.formatChanged('forecolor', function (isNew, args) {
    if (isNew)
    console.log("new color", args.node.style.color);
}, true)
演示

但即使你只选择一些已经上色的文本,这也会触发。。。不幸的是,这不是最好的选择

当然,
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});
}
演示


但这不能全局执行,必须对每个tinymce编辑器实例重复执行,因此它也不是最佳解决方案…

TextColor插件不再触发execCommand事件,因为它直接使用。因此,您无法获取旧事件,但可以使用格式化程序上的
formatChanged
来提供回调:。然而,即使你只是选择一些已经上色的文本,这也会触发。。。可悲的是,这不是最好的alternative@nemesv既然你可以使用'monkey patch'editor.formatter.apply,你的评论基本上就是这个问题的答案-为什么不把你的评论作为答案呢?我将formatter.apply monkey patch添加到tinymce.init的init_实例_回调中。这让我可以在创建每个实例时将其应用于该实例,而不是依赖于tinymce.activeEditor。