私は TinyMCE プラグインに取り組んでいます。私がやりたいことの 1 つは、カスタム フォーマットを切り替えるコマンド/ボタンを登録することです。
たとえば、TinyMCE で太字のボタンをクリックすると、太字のテキストで強調表示された太字のボタンが表示されます。ソース コードを掘り下げると、tinymce.EditorCommands.addCommands を介してこれが発生することがわかります。TinyMCE のドキュメントもひどいものです =(
そのため、customFormat を指定すると、プラグインでボタンをセットアップして、customFormat が適用されると、太字、斜体、およびその他のボタンがツールバーに表示されるように表示されるようにしたいと考えています。customFormat をクリックすると、そのフォーマットのオン/オフが切り替わります。「addCommand」と「addButton」を使用して簡単にトゥーグルを実行できますが、Bold や他の人のように状態を追跡する機能はありません。
現在動作していない試行を表示しています (このコードは、プラグインの create メソッドの 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'});