編集:フィドルの例を追加しました - http://fiddle.tinymce.com/EZbaab/2
現在、tinyMCE インスタンスを含むページと、それを継承する 3 つの個別のテキストエリアがあります。
クリック可能なサブメニュー項目 (Django を使用して生成) を持つカスタム メニューがあり、クリックすると、現在アクティブな tinyMCE エディター (テキストエリア) にコンテンツが挿入されます。問題は、どのエディター ツールバーがクリックされたかに関係なく、これが発生することです。たとえば、上部のエディターのツールバー項目をクリックしても、下部のエディターにフォーカスがある場合、テキストは下部のエディターに貼り付けられます。
メニュー項目がクリックされたときに、ツールバーがクリックされているエディターを強制的にフォーカスする必要があります (これは、太字、斜体、下線などの既定のボタンで発生しますが、カスタム メニュー項目では発生しません)。
または、クリックされたエディターのインスタンス ID を、何らかの形でテキストに貼り付ける関数に渡す必要があります。問題は、ドキュメントでこれら 2 つのタスクへの参照を見つけるのに苦労していることです。
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;
}
});