私はいくつかのテキストエリアを持っていますが、それらはすべてtinyMCEを使用しています。
特定のテキストエリアのコンテンツを設定したいのですが、方法がわかりません。
私はこれを試しました:
tinyMCE.get('title').setContent(selected_article_title);
これが私のテキストエリアです:
<textarea style="width: 95%;" name="Title" id="title"></textarea>
そしてここに私のtinyMCE init:
tinyMCE.init({
// General options
mode : "specific_textareas",
theme : "advanced",
width: "100%",
plugins : "pagebreak,paste,fullscreen,visualchars",
// Theme options
theme_advanced_buttons1 : "code,|,bold,italic,underline,|,sub,sup,|,charmap,|,fullscreen,|,bullist,numlist,|,pasteword",
theme_advanced_buttons2 :"",
theme_advanced_buttons3 :"",
theme_advanced_buttons4 :"",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "bottom",
valid_elements : "i,sub,sup",
invalid_elements : "p, script",
editor_deselector : "mceOthers"
});
なぜこれが機能しないのかわかりません。tinyMCEWebサイトの例を使用しています http://www.tinymce.com/wiki.php/API3:method.tinymce.Editor.setContent
私には解決策があります(いくつかの要素を提供してくれたThariamaより)
TinyMCEを使用してtextareaのコンテンツを設定するには、tinyMCEを初期化する前にtextareaに入力する必要があります。また、応答は次のとおりです。
Textareaを作成します。
<textarea style="width: 95%;" name="Title" id="title"></textarea>
Textareaのコンテンツを設定します。
$('#title').html(selected_article_title);
TinyMCEを初期化します。
tinyMCE.init({
// General options
mode : "specific_textareas",
theme : "advanced",
width: "100%",
plugins : "pagebreak,paste,fullscreen,visualchars",
// Theme options
theme_advanced_buttons1 : "code,|,bold,italic,underline,|,sub,sup,|,charmap,|,fullscreen,|,bullist,numlist,|,pasteword",
theme_advanced_buttons2 :"",
theme_advanced_buttons3 :"",
theme_advanced_buttons4 :"",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "bottom",
valid_elements : "i,sub,sup",
invalid_elements : "p, script",
editor_deselector : "mceOthers"
});
これで完了です。楽しい。
これで問題は解決すると思います
tinyMCE v:4では正常に動作します。
// Sets the HTML contents of the activeEditor editor
tinyMCE.activeEditor.setContent('<span>some</span> html');
// Sets the raw contents of the activeEditor editor
tinyMCE.activeEditor.setContent('<span>some</span> html', {format : 'raw'});
// Sets the content of a specific editor (my_editor in this example)
tinyMCE.get('my_editor').setContent(data); // here my_editor is the id of a specific editor
// Sets the bbcode contents of the activeEditor editor if the bbcode plugin was added
tinyMCE.activeEditor.setContent('[b]some[/b] html', {format : 'bbcode'});
コードのリンクは TinyMCE setContent です。
Tinymceバージョン4の場合
tinymce.get('title').setContent(selected_article_title);
エディタを初期化した後でもうまくいきます。
これを使う
tinyMCE.get('title').setContent(selected_article_title);
動作しません。エディターのコンテンツを設定します。
エディタのソースhtml要素(textarea)を設定するには、直接使用して設定する必要があります
$('#title').html(selected_article_title);
あなたのエディタはtextareaと同じではないことに注意する必要があります!
$('#title').html(selected_article_title);
Selected_article_titleにHTMLタグが含まれていないことを確認してください。
以下はtinymceバージョン4で動作し、ドラッグ中はエディターをテキストエリアとして表示しません。
function initializeEditors() {
var editorContent = {};
$("#photo-list").sortable({
start: function (e, ui) {
$('.attachment-info').each(function () {
var id = $(this).attr('id');
editorContent[id] = tinyMCE.get(id).getContent();
});
},
stop: function (e, ui) {
$('.attachment-info').each(function () {
var id = $(this).attr('id');
tinymce.execCommand('mceRemoveEditor', false, id);
tinymce.execCommand('mceAddEditor', true, id);
tinyMCE.get(id).setContent(editorContent[id]);
});
}
});
}
msoタグを含むコンテンツ(たとえば、番号付きリストを含むOutlook2013から生成されたhtmlコンテンツ)を設定すると、リスト要素が失われます。 tinymce.activeEditor.setContent(foo)またはtextareaコンテンツを最初に設定してからtinymceを初期化で設定すると同じ結果が得られますが、リスト要素が正しく表示されず、左揃えになっています。しかし、setContent(foo, { format:'raw' })
を使用して設定すると、リスト要素が適切に表示されます。どうして?