我正在为Tinymce使用tinymce-rails
gem,我想添加自定义菜单选项。现在我正在做readme
的宝石建议,如:
<%= f.input :content , :label => false , :placeholder => 'Content', input_html: {class: "tinymce"} %>
<%= tinymce %>
我正在使用simple-form
。
我想在编辑器中添加一个带有一系列选项的下拉列表(我有一个名称数组),当用户点击一个选项时,应该在编辑器的视图中插入所选名称。这些名字将是动态的。
我尝试将许多选项传递给初始化程序tinymce
,但无法获得结果。
答案 0 :(得分:0)
不是使用gem中的默认启动器,而是可以手动启动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')