TinyMCE添加菜单问题(带插件)

时间:2016-12-05 23:25:15

标签: javascript html tinymce-4

我一直试图添加自己的菜单,一定是做错了。以下是我到目前为止的一些示例代码中的shell:

tinymce.html - 我托管textarea和init代码的页面:

<!-- /TinyMCE -->
  <script type="text/javascript">
   tinyMCE.init({
  mode: "textareas",
  skin: "o2k7",
  theme: "advanced",
  plugins: "mymenu,fullpage,safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
  theme_advanced_buttons1: "newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
  theme_advanced_buttons2: "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
  theme_advanced_buttons3: "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
  theme_advanced_buttons4: "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak",
  toolbar: "mymenu",
  theme_advanced_toolbar_location: "top",
  theme_advanced_toolbar_align: "left",
  theme_advanced_resizing: false,
  extended_valid_elements: "a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]"
});
</script>
<!-- /TinyMCE -->

<body>
  <form method="post">
      <textarea name="tinyMceEditor" cols="1" rows="1" style="width:100%; height: 100%"></textarea>
  </form>
</body>

你可以看到插件&#39; mymenu&#39;和工具栏&#39; mymenu&#39;是在TinyMCE的初始化。

对于插件,它位于带有editor_plugin.js约定的/ Plugins / mymenu /目录中。我知道它正在加载它,因为如果我向文件引入错误,我会收到警告。

editor_plugin.js:

(function() {
tinymce.create('tinymce.plugins.mymenu', {

    init: function (editor, url) {

        editor.addButton('mymenu', {
            type: 'menubutton',
            text: 'My Menu',
            icon: false,
            menu: [{
                text: 'Data Loop',
                onclick: function(){
                    editor.insertContent('{DataLoop}');
                }
            }, {
                text: 'Collector Loop',
                onclick: function(){
                    editor.insertContent('{CollectorLoop}');
                }

            }]

        });

    }
});

// Register plugin
tinymce.PluginManager.add('mymenu', tinymce.plugins.PageBreakPlugin);

})();

我认为我的一切都是正确的。但是 - 没有菜单出现。只有4个工具栏按钮,如init代码中的buttons1-4所示。

编辑 :我尝试删除所有高级按钮,将主题更改为简单,以及其他一些选项。仍然无法显示这个简单的菜单:(

1 个答案:

答案 0 :(得分:0)

这是一个TinyMCE小提琴,显示了在菜单中实现包含两个项目的整个自定义菜单:

http://fiddle.tinymce.com/JDfaab

您不必创建插件来实现自定义菜单项或工具栏按钮 - 您可以直接在配置对象中执行此操作。如果你真的想要一个插件,你可以采用这个例子并将其移动到你自己的插件。