2016-09-14 12 views
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のドキュメントでいくつかの関連情報を見つけようと数時間を費やしましたが、明らかに無駄でした。何か案は?

答えて

0

エディタのツールバーが読み込まれると、TinyMCEはボタンのアイコン/テキストの変更をサポートしません。ボタンを「オン」または「オフ」に切り替えた場合(たとえば太字であるかどうかにカーソルを置いたときにボールドボタンが何をするか)は変更できますが、実際のテキスト/アイコンは変更できません。

用語集ボタンを定義するために使用したJavaScriptオブジェクトは、エディタが完全に読み込まれた後でもメモリに残っているため、プロパティ値やconsole.logを変更するなどの目的でそのオブジェクトを実行できますが、TinyMCEは使用できませんそのボタンオブジェクトを見て、ツールバーがロードされた後にボタンを更新します。

+0

うわー、私はそれを期待していませんでした。したがって、**ボタンの** onclick関数で 'text'プロパティが変更された場合は、実際にボタンを更新しますが、**エディタの**ボタンで' text'プロパティが変更された場合は更新されません'onclick'関数ですか?なぜなら、このような場合には、なぜそれがそのように設計されるのかということは私にはあまり意味がないからです... – pazof

+0

ボタンのテキストをボタンのテキストにすることはできません。イベント。 (これはJavaScriptオブジェクトでは変更されますが、ツールバーでは視覚的に変更されません)JS Fiddleを動作させることができますか? –

関連する問題