2012-03-12 140 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