2

ページに tinyMCE (テキストエリア) を含むグリッドと div があります。Div は最初は非表示です。テキストエリアにデータを入力した後:

$('#editor').val(data.Content);
$("#divGrid").hide("slide");
$("#divCard").show("slide");
InitMCE();

tinyMCE のコンテンツが表示され、コンポーネントは編集可能ですが、テキストエリア (#divCard) で div を非表示にした後、もう一度 $('#editor').val(data.Content); 入力すると、tinyMCE は読み取り専用で表示され、コンテンツは表示されません。

関数 InitMCE() のコードは次のとおりです。

tinyMCE.init({
   mode: "textareas",
   theme: "advanced",
...
});

で試しました

tinyMCE.execCommand("mceRemoveControl", false, '#editor');
$('#editor').val(data.Content);
$("#divGrid").hide("slide");
$("#divCard").show("slide");
InitMCE();

そして:

tinyMCE.remove($('textarea'));
$('#editor').val(data.Content);
$("#divGrid").hide("slide");
$("#divCard").show("slide");
tinyMCE.execCommand("mceAddControl", false, '#editor');
InitMCE();

および他のいくつかのバリエーションがありますが、成功していません。

4

2 に答える 2

0

なぜテキストエリアを非表示にしているのですか。

TinyMCEが初期化された後にhtmlDOM構造を調べると、TinyMCEが前にdivとspantextareaを使用してテキストをレンダリングしていることがわかりますが、編集しようとすると、実際にはテキストエリアが編集されています。

したがって、テキストエリアを非表示にすると、編集できなくなります。

于 2012-11-12T12:11:50.823 に答える
0

エディターの初期化時にソース html 要素 (この場合はテキストエリア) が非表示になっている場合に発生する可能性のある問題がいくつかあります。Tinymce は、以前のテキストエリアを非表示にします。問題の解決策は、初期化の直前にテキストエリアを表示するように設定することです。その後、その内容を編集しても問題ありません。

于 2012-11-12T12:31:03.757 に答える