因此我可以添加一个自定义工具栏切换按钮,该按钮会将所选文本呈现为红色 - 即:
tinymce.init({
selector: '#txtT',
width: 500,
height: 300,
browser_spellcheck: true,
statusbar: false,
menubar: false,
toolbar: 'bold italic underline | boldRed',
setup: (editor) => {
editor.ui.registry.addIcon('mysvg', '<svg height="24" width="24"><path d="M12 0 L24 24 L0 24 Z" /></svg>');
editor.ui.registry.addToggleButton('boldRed', {
icon: 'mysvg',
onAction: (_) => editor.execCommand('ForeColor', false, '#FF0000'),
onSetup: (api) => {
api.setActive(editor.formatter.match('#FF0000'));
const changed = editor.formatter.formatChanged('#FF0000', (state) => api.setActive(state));
return () => changed.unbind();
}
});
},
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:16px }'
});
到目前为止一切顺利。但有两件事:
我不知道如何让我的自定义图标来执行此操作。想必我需要以某种方式注册备用的、切换的、“开启”状态图标..?
[编辑]即使我使用内置图标 - 再次说“粗体” - 这不会像真正的粗体、斜体等图标那样改变状态。
[编辑] 很确定答案在于“上下文”,根据 文档 但如果我能弄清楚的话该死的...
在这里添加了一个小提琴
蒂亚
github上有人非常好心地提供了答案: https://github.com/tinymce/tinymce/discussions/10001