编辑:添加了一个小提琴示例 - http://fiddle.tinymce.com/EZbaab/2
我目前有一个页面,上面有一个 tinyMCE 实例和三个继承它的单独文本区域。
我有一个自定义菜单,上面有可单击的子菜单项(使用 Django 生成),单击时将内容插入当前活动的 tinyMCE 编辑器(textarea)。问题是,无论点击了哪个编辑器工具栏,都会发生这种情况。因此,例如,如果我单击顶部编辑器的工具栏项,但关注底部编辑器,则文本将粘贴到底部编辑器中。
当单击菜单项时,我需要强制单击工具栏的编辑器成为焦点(这发生在默认按钮,如粗体、斜体、下划线,但不适用于我的自定义菜单项)
或者我需要将单击的编辑器的实例 ID 传递到以某种方式粘贴到文本中的函数中。困难在于我很难在文档中找到对这两个任务的任何引用。
tinyMCE 初始化代码:
tinyMCE.init({
forced_root_block : false,
force_br_newlines : true,
force_p_newlines : false,
mode : "textareas",
theme : "advanced",
plugins : "contextmenu,paste,save,-stdpara",
theme_advanced_buttons1 : ",bold,italic,underline,cleanup,|,undo,redo,|,cut,copy,paste,|,stdpara",
theme_advanced_buttons2 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
force_br_newlines : true,
force_p_newlines : false,
forced_root_block : '',
});
(其中 stdpara 是我的自定义菜单插件):
菜单代码(去掉 django 并添加了一些随机数据:
tinymce.create('tinymce.plugins.StandardParagraphPlugin', {
createControl: function(n, cm) {
switch (n) {
case 'stdpara':
var c = cm.createSplitButton('stdparagraph', {
title : 'Standard Paragraph',
image : 'img/para.png',
});
c.onRenderMenu.add(function(c, m) {
m.add({title : 'Standard Paragraphs', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
category_menu = m.addMenu({title : 'Some Title'});
category_menu.add({title : 'Some sub-title', onclick : function() { tinyMCE.activeEditor.execCommand('mceInsertContent',false,'The Text') });
}});
return c;
}
return null;
}
});