2014-11-24 75 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

相關問題