1

我想捕捉按下某个按钮的事件。在TinyMCE 捕获单击按钮事件中,建议了如何执行此操作的简单解决方案,但对我来说它不起作用。能否请你帮忙。这是我在 editor_plugin_src.js 和 editor_plugin.js 文件的 tinymce/plugins/test 文件夹中的代码:

(function(){
tinymce.create("tinymce.plugins.testPlugin",{
    init:function(ed,url){
        ed.addCommand('my_bold', this.my_bold, this); //calls the function my_bold
        ed.onInit.add(function(editor) {
            if (editor.controlManager.get('bold')){
                editor.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
        alert('pressed');
    },
    createControl:function(b,a){
        return null
    },
    getInfo:function(){
        return{
            longname:"test plugin",
            author:"test author",
            authorurl:"http://tinymce.moxiecode.com",
            infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example",
            version:"1.0"
        }
    }
});
tinymce.PluginManager.add("test",tinymce.plugins.TestPlugin)     })();

在这里我激活插件测试:

    $(this).tinymce({
        ...
        autoresize_bottom_margin : 15,
        mode : 'exact',
        elements : clickedId,           
        theme : 'advanced',
        plugins : 'autoresize,test',
        force_br_newlines : true,

更新:

(function(){
tinymce.PluginManager.requireLangPack("test");
tinymce.create("tinymce.plugins.test",{
    init:function(ed,url){
        ed.addCommand('my_bold', this.my_bold, this);//calls the function my_bold
        ed.onInit.add(function(editor) {
            if (editor.controlManager.get('bold')){
                editor.controlManager.get('bold').settings.cmd='my_bold'; 
            }
        });
    },
    my_bold: function() {           
        // exectution of regular command
        this.editor.execCommand('Bold');

        // now do whatever you like here
        alert('pressed');
    },
    createControl:function(ed,url){
        return null
    },
    getInfo:function(){
        return{
           longname:"test plugin",
           author:"test author",
           authorurl:"http://tinymce.moxiecode.com",
           infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example",
           version:"1.0"
        }
    }
});
tinymce.PluginManager.add("test",tinymce.plugins.test)    })();

现在我有了这个。

4

1 回答 1

2

您是否在按钮配置中添加了粗体按钮?就像是:

theme_advanced_buttons1: "bold,italic,underline";

更新:

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

是错误的,你需要:

editor.controlManager.get('bold').settings.cmd='my_bold';

这里。

于 2012-07-13T15:37:34.923 回答