tinymce - 是否可以从工具栏外部调用自定义插件功能?

Sha*_*ras 5 javascript tinymce-4

好的。我知道以前可能有人问过这个问题:

这里

但我的问题是,如何从外部按钮而不是工具栏按钮调用插件函数。

我添加了一个自定义插件:

tinymce.PluginManager.add('example', function(e) {
        function customfunction(){
                    e.focus(true);
                    alert('Hello TinyMce');
            }
        }
);
Run Code Online (Sandbox Code Playgroud)

在 Fiddle 上检查这个

customfunction从其他函数调用此函数,当我单击 时调用该函数Custom Button。像这样:

function clickme()
{
   tinymce.get('textareaid').plugins.example.customfunction();

}
Run Code Online (Sandbox Code Playgroud)

按钮:

<button onclick="clickme()" >Custom Button</button>
Run Code Online (Sandbox Code Playgroud)

但这对我不起作用?

custom plugin function用这种方式打电话是在做正确的事吗?

我错过了什么吗?

pas*_*sty 3

一种可能是向工具栏添加一个具有唯一性的按钮ID,并调用该按钮的单击事件。该插件看起来像这样:

tinymce.PluginManager.add('example', function(e) {

        function customfunction() {
                    e.focus(true);
                    alert('Hello TinyMce');
            }


        e.addButton('testButton', {
            id: "testButton",
            text: 'Example',
            icon: false,
            onclick: function() {
                    // calls the custom function
                    customfunction();
                }
            });
    }
);
Run Code Online (Sandbox Code Playgroud)

然后像这样初始化tinymce编辑器:

tinymce.init({
    selector: "textarea",
    plugins: "example",
    // show the button
    toolbar: "testButton undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
});
Run Code Online (Sandbox Code Playgroud)

最后调用按钮点击事件:

function clickme()
{
   document.getElementById("testButton").click();
}
Run Code Online (Sandbox Code Playgroud)

不要使用add_filter. 完整的代码形成你的tinymce小提琴:

<script type="text/javascript">
tinymce.PluginManager.add('example', function(e) {
        function customfunction() {
                    e.focus(true);
                    alert('Hello TinyMce');
            }


    e.addButton('testButton', {
        id: "testButton",
        text: 'Example',
        icon: false,
        onclick: function() {
                customfunction();
            }
        });
}
);

tinymce.init({
    selector: "textarea",
    plugins: "example",
    toolbar: "testButton undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
});
//add_filter('mce_external_plugins', 'example');
function clickme()
{
   document.getElementById("testButton").click();
}

</script>

<form method="post" action="">
    <textarea name="content" id="textareaid"></textarea>
</form>

<button onclick="clickme();" >abc</button>
Run Code Online (Sandbox Code Playgroud)