TinyMCE 添加菜单问题(带插件)
TinyMCE Add Menu Issue (with plugin)
我一直在尝试添加自己的菜单,但一定是做错了什么。到目前为止,这是我所拥有的,它只是一些示例代码中的 shell:
tinymce.html - 我托管文本区域和初始化代码的页面:
<!-- /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>
可以看到插件'mymenu'和工具栏'mymenu'在TinyMCE的初始化中
对于插件,它位于 /Plugins/mymenu/ 目录中,具有 editor_plugin.js 约定。我知道它正在加载它,因为如果我向文件引入错误,我会收到警告。
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 个工具栏按钮,如初始代码中的按钮 1-4 所示。
Edit:我试过删除所有高级按钮,将主题更改为简单,以及许多其他选项。仍然无法让这个简单的菜单出现:(
这里是一个 TinyMCE Fiddle,它显示了实现一个完整的自定义菜单,菜单中有两个项目:
http://fiddle.tinymce.com/JDfaab
您不必创建插件来实现自定义菜单项或工具栏按钮 - 您可以直接在配置对象中执行此操作。如果你真的想要一个插件,你可以把这个例子移到你自己的插件中。
我一直在尝试添加自己的菜单,但一定是做错了什么。到目前为止,这是我所拥有的,它只是一些示例代码中的 shell:
tinymce.html - 我托管文本区域和初始化代码的页面:
<!-- /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>
可以看到插件'mymenu'和工具栏'mymenu'在TinyMCE的初始化中
对于插件,它位于 /Plugins/mymenu/ 目录中,具有 editor_plugin.js 约定。我知道它正在加载它,因为如果我向文件引入错误,我会收到警告。
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 个工具栏按钮,如初始代码中的按钮 1-4 所示。
Edit:我试过删除所有高级按钮,将主题更改为简单,以及许多其他选项。仍然无法让这个简单的菜单出现:(
这里是一个 TinyMCE Fiddle,它显示了实现一个完整的自定义菜单,菜单中有两个项目:
http://fiddle.tinymce.com/JDfaab
您不必创建插件来实现自定义菜单项或工具栏按钮 - 您可以直接在配置对象中执行此操作。如果你真的想要一个插件,你可以把这个例子移到你自己的插件中。