2

我正在tinymce-rails为 Tinymce 使用 gem,我想添加自定义菜单选项。现在我正在做readmegem中建议的事情,例如:

<%= f.input :content , :label => false ,  :placeholder => 'Content', input_html: {class: "tinymce"} %>
<%= tinymce %>

我正在使用simple-form.

我想在编辑器中添加一个带有一堆选项的下拉列表(我有一个名称数组),当用户单击一个选项时,应将所选名称插入到编辑器的视图中。这些名称将是动态的。

我尝试将许多选项传递给初始化程序tinymce,但无法获得结果。

4

1 回答 1

0

您可以手动启动 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')
于 2014-11-24T03:01:43.613 回答