您可以手动启动 tinymce 并同时创建菜单项,而不是使用 gem 中的默认启动器:
http://www.tinymce.com/tryit/menuitem.php
像这样的东西:
<script type="text/javascript">
tinymce.init({
selector: '.my-class textarea',
toolbar: "styleselect | bold italic | mybutton",
setup: function(editor) {
<% @my_items.each_with_index do |name, index| %>
editor.addMenuItem('<%= name %>', {
text: '<%= name %>',
context: 'tools',
onclick: function() {
editor.insertContent('<%= name %>');
}
<%= index == (@my_items.count - 1) ? '});' : '}),' %>
< % end %>
});
</script>
我们使用三元运算符根据名称的索引选择正确的结束标记。
从理论上讲,您也可以在config/tinymce.yml文件中执行此操作,但由于动态性质,这并不合理。
您可能想要查看的其他内容是将菜单传递给 activeEditor,例如:
tinyMCE.activeEditor.controlManager.get('my_menu')