web-dev-qa-db-ja.com

TinyMCEの初期化後にjavascriptでtextarea値を設定する

私はテキストエリアを使用していますが、そのテキストエリアでtinyMCEを使用しています。

私が実際に行っているのは、ページが開かれたときに、textareaにテキストを入力し、その後、tinyMCEを初期化することです。

問題は、tinyMCEの初期化後にtextareaの値を変更しようとすると、何も起こらないことです。

例を示します。

  1. テキストエリアを作成する:

    <textarea style="width: 95%;" name="title"  id="title"></textarea>
    
  2. Textareaへの入力:

    $('#title').html("someText");
    
  3. 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"
        });
    
  4. Textviewの内容を変更したい(ただし、機能しない)

TinyMCEを初期化する前と同じように使用しようとしました

    $('#title').html("someModifiedText"); // does not work

私もtinyMCEを削除しようとしました:

    if(tinyMCE.getInstanceById('title'))
    removeTinyMCE("title");

function removeTinyMCE (dialogName) {
    tinyMCE.execCommand('mceFocus', false, dialogName);
    tinyMCE.execCommand('mceRemoveControl', false, dialogName);

}

そして再利用する:

    $('#title').html("someModifiedText"); // does not work

アイデアが足りません...ご協力ありがとうございます...

31
Miloš
<textarea id="content" name="content">{{html_entity_decode($yourstringdata)}}</textarea>

これは私にとっては仕事です、あなたのhtmlデータをデコードして、それを開始と終了のtextareaタグの間に置きます。

0
Rosidin Bima