我正在开发一个 TinyMCE 插件,我想要它做的一件事是注册用于切换自定义格式的命令/按钮。
例如,如果您单击 TinyMCE 中的粗体按钮,它将以粗体文本突出显示粗体按钮。深入研究源代码,我看到这是通过以下方式发生的:tinymce.EditorCommands.addCommands 认为我似乎无法弄清楚如何复制它。TinyMCE 的文档也很糟糕 =(
因此,给定 customFormat,我希望能够通过我的插件设置一个按钮,当应用 customFormat 时,它会像工具栏上的粗体、斜体和其他此类按钮一样显示。单击我的 customFormat 会打开/关闭该格式。我可以通过“addCommand”和“addButton”轻松完成工具,但它没有像 Bold 和其他人那样的状态跟踪。
显示我当前的非工作尝试(此代码在我的插件创建方法的 init 中):
tinymce.EditorCommands.call('addCommands', {
'MyFormat' : function(name) {
ed.formatter.toggle("customFormat");
}
},'exec');
tinymce.EditorCommands.call('addCommands', {
'MyFormat' : function(name) {
return ed.formatter.match('customFormat');
}
},'state');
ed.addButton('customformat', {cmd : 'MyFormat'});
这里是 addCommands 的“文档”的链接: http ://www.tinymce.com/wiki.php/API3:method.tinymce.EditorCommands.addCommands
在环顾四周后,我发现这似乎很完美: http ://www.tinymce.com/wiki.php/API3:method.tinymce.Editor.addQueryStateHandler
但是当我实现代码时,它不会改变按钮的状态:
ed.addCommand('MyFormat', function(ui, v) {
ed.formatter.toggle("thoughtFormat");
});
ed.addQueryStateHandler('MyFormat', function() {
return ed.formatter.match('thoughtFormat');
});
ed.addButton('myformat', {cmd : 'MyFormat'});