0
使用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
即使我將按鈕的代碼放在按鈕自己的onClick中,我也無法獲取按鈕的文本以在UI中進行更改事件。 (它會在JavaScript對象中更改,但不會在工具欄上直觀顯示)您可以讓JS小提琴顯示工作嗎? –