tinyMCE 4.2を使用して、ユーザーがエディタ内のどこかをクリックするたびに(カスタム)ツールバーボタンのテキストを変更する必要があります。TinyMCE 4エディタのツールバーのボタンのテキストを変更する
これは、関連するコードです:
tinymce.init({
//code ommitted...
toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image jbimages navigationbutton glossary",
setup: function(editor){
//add "Glossary" button
editor.addButton('glossary', {
name: 'glossary',
text: 'Glossary',
onclick: function(){
/*
//commented on purpose
var button = this;
var updatedButtonText = "Some updated button text";
button.text = updatedButtonText;
*/
}
});//end addButton
editor.on('click', function(){
var updatedButtonText = "Some updated button text";
//update the button text:
editor.buttons.glossary.text = updatedButtonText; //doesn't work
window.parent.tinyMCE.activeEditor.buttons.glossary.text = updatedButtonText; //doesn't work either
//confirm changes:
console.log(editor.buttons.glossary.text); //correctly prints "Some updated button text"
console.log(window.parent.tinyMCE.activeEditor.buttons.glossary.text); //correctly prints "Some updated button text" as well
});
}//end setup
});//end tinymce.init
だから、問題は実際にボタンオブジェクトのtext
プロパティが変更を行いながら、この変更は、ボタンのテキストは、「用語集」のままエディタに反映されていない、ということです。 興味深いことに、ボタンのonclick
関数を使って全く同じことを行うと(コメント付きコードブロックのコメントを外すと)、それは期待どおり完全に機能します - ボタンテキストはエディタで更新されます。
TinyMCE 4のドキュメントでいくつかの関連情報を見つけようと数時間を費やしましたが、明らかに無駄でした。何か案は?
うわー、私はそれを期待していませんでした。したがって、**ボタンの** onclick関数で 'text'プロパティが変更された場合は、実際にボタンを更新しますが、**エディタの**ボタンで' text'プロパティが変更された場合は更新されません'onclick'関数ですか?なぜなら、このような場合には、なぜそれがそのように設計されるのかということは私にはあまり意味がないからです... – pazof
ボタンのテキストをボタンのテキストにすることはできません。イベント。 (これはJavaScriptオブジェクトでは変更されますが、ツールバーでは視覚的に変更されません)JS Fiddleを動作させることができますか? –