gpt4 book ai didi

javascript - 不能再捕捉 ForeColor 命令,tinymce 4.1.4

转载 作者:行者123 更新时间:2023-12-03 12:45:38 27 4
gpt4 key购买 nike

Tinymce 曾经为文本颜色更改触发一个事件,如果你运行:

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

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

最佳答案

TextColor 插件不再触发 execCommand 事件,因为 since this commit它直接使用 Formatter infrastructure .所以你无法获取旧事件。

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

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

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

演示 JSFiddle .

但这不能在全局范围内完成并且必须对每个 tinymce 编辑器实例重复进行,因此它又不是最佳解决方案...

关于javascript - 不能再捕捉 ForeColor 命令,tinymce 4.1.4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27540258/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com