2014-11-24 46 views
1

我使用tinymce-rails创业板TinyMCE的,我想添加自定义菜单选项。现在我在做什么,建议在宝石一样的readme如何添加自定义菜单OPTON在TinyMCE的Rails中

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

我使用simple-form

我想添加在一堆选项(我有名字的数组),当上一个选项用户点击,则选择的名称应该在编辑器的视图插入数据编辑器下拉。这些名字将是动态的。

我试图通过多种选项来初始化剂tinymce,但无法得到的结果。

回答

0

而不是使用默认的启动从宝石,你可以手动启动TinyMCE的,并在同一时间创建菜单项:

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') 
+0

感谢点燃艾伦,但我是因为我使用的编辑希望类似于期权的东西(有轨初始化器)在4-5个不同的地方,我想有条件地在少数地方的菜单选项。如果我使用这个,那么我必须在我的视图中编写大量代码,而我通常不喜欢这些代码。有没有其他的工作? – manoj2411 2014-11-25 01:41:33

+0

你可以在你的jQuery资产中定义一个像这样的函数,并用你的参数来调用它。 或者,另一个好的选择是js.erb部分,你可以在必要时用你的参数调用。当我有机会时,我会为你嘲笑它。 – 2014-11-25 01:48:23

相关问题