2012-03-12 1166 views
3

TinyMCE有可能知道哪個按鈕被點擊了嗎?所以我可以針對特定按鈕的特定事件進行具體操作。TinyMCE捕捉點擊按鈕事件

這裏的按鈕是默認的控制按鈕,如粗體/斜體/選擇字體不是自定義按鈕之一。

可能在init中,但我不知道該怎麼調用。我可以捕捉編輯的事件,但不是按鈕的事件。

例如,假設我希望每次單擊粗體按鈕時彈出一個消息框。如何捕獲粗體按鈕的點擊事件?正在創建自定義按鈕的唯一方法?

回答

3

不,您可以定義一個自己的命令,並在buttonklick上調用該命令(+ defualt動作)。我不知道你是否想要所有按鈕的通用方式。但只需一個或兩個按鈕就很容易。

例如:我們希望對粗體按鈕進行操作。 首先我們定義在我們自己的插件之一的自己的命令(在「初始化:功能(ED,URL)」 -section):

ed.addCommand('my_bold', this.my_bold, this); //calls the function my_bold 

然後我們覆蓋用命令的默認操作:

if (ed.controlManager.get('bold')){ 
    ed.controlManager.get('bold').settings.cmd='my_bold_action'; 
}; 

現在,我們只需要定義函數我大膽

my_bold: function() {   
    // exectution of regular command 
    this.editor.execCommand('Bold'); 

    // now do whatever you like here 
    ... 
}, 
+0

對不起,我沒有關注。你能給我一個例子嗎? thx :) – rooivalk 2012-03-12 12:26:57

+0

看到我更新的帖子 – Thariama 2012-03-12 14:03:05

+1

但是如何在版本4中做到這一點。我不能在編輯器中看到那裏的控制管理器? – ironbone 2014-07-14 23:23:06

1

ed.controlManager必須 「的OnInit」 梅索德被稱爲:

ed.onInit.add(function(editor) { 
    ....... 
    ........ 

    if (editor.controlManager.get('bold')){ 
     editor.controlManager.get('bold').settings.cmd='my_bold_action'; 
    }; 

}); 
+0

-1'my_bold_action'沒有正確的上下文是無用的,我建議你不要複製/粘貼其他答案 – Thariama 2012-07-12 10:05:53