34

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

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

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

ここに例があります。

  1. テキストエリアの作成:

    <textarea style="width: 95%;" name="title"  id="title"></textarea>
    
  2. テキストエリアへの入力:

    $('#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. テキストビューの内容を変更したい(でもうまくいかない)

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

私はアイデアがありません.あなたの助けをどうもありがとう....

4

7 に答える 7

41

ここでの問題は、テキストまたは html をテキストエリアに入力しても何も表示されないことです。tinymce が初期化されると、テキストエリアが非表示になります。次に表示されるのは、コンテンツの編集とスタイル設定に使用される、コンテンツの編集可能な iframe です。tinymce がそのコンテンツをエディターの html ソース要素 (この場合はテキストエリア) に書き込むイベントがいくつかあります。

エディターのコンテンツ (可視) を設定したい場合は、次のように呼び出す必要があります。

tinymce.get('title').setContent('<p>This is my new content!</p>');

次を使用して、dom 要素に直接アクセスすることもできます。

tinymce.get('title').getBody().innerHTML = '<p>This is my new content!</p>';

またはjQueryを使用して

$(tinymce.get('title').getBody()).html('<p>This is my new content!</p>');
于 2012-08-03T10:00:09.023 に答える
13

を使用できます。tinyMCE.activeEditor.setContent('<span>some</span> html');

この回答を確認してください

于 2015-12-02T03:05:55.110 に答える