6

脚本

$('.DDL').change(function update() {
    $.get('../Folder' + $(this).val() + '.html', function(result) {  
        $('.CKE').val(result);
    });
});

テキストエリア

<asp:CKEditorControl ID="txtMailBody" CssClass="CKE" RunAt="Server" BasePath="~/Editor"/>

選択内容に基づいて、テキストエリアに関連するコンテンツを入力する jscript があります。

javascript は、任意のテキストエリアに入力するために完全に機能します。

テキストエリアが ckeditor の場合は機能しません。

ページを調べると、コンテンツが追加されていることがわかりますが、ckeditor はそれを表示しません。ページを更新すると、コンテンツも表示されます。

質問

ドロップダウンリストからオンザフライで追加されたクライアント側コードを表示するために、CKEditor テキストエリアを更新/更新するにはどうすればよいですか?

4

1 に答える 1

19

使用する

CKEDITOR.instances['txtMailBody'].setData(result);

それ以外の

$('.CKE').val(result);

..CKEditored のテキストエリアを更新するとき。


この小さなデモを試してください:

テキスト スニペットを挿入する選択ボックス:

<select id="test">
<option>some text to be inserted</option>
<option>some other text</option>
<option>even more text</option>
</select>

CKEditor インスタンスになるテキストエリア

<textarea id="txtMailBody"></textarea>

脚本

//create the CKEditor instance
CKEDITOR.replace("txtMailBody"); 

$("#test").change(function() {
    var result = $("#test option:selected").text();
    //HERE
    CKEDITOR.instances['txtMailBody'].setData(result);
    //instead of $(textarea).val(result);
});

もちろん、ターゲットが CKEditor の場合にのみ使用する必要がありますCKEDITOR.instances['txtMailBody'].setData(result);それ以外の場合は、テキストエリアの場合は、既に持っているコードを使用してください。

于 2013-09-03T11:34:26.583 に答える