2012-08-03 60 views
16

我有一個textarea,我在那個textarea上使用tinyMCE。在TinyMCE初始化後用javascript設置textarea值

我在做的實際上是當頁面打開時,我用一些文本填充textarea,之後我正在初始化tinyMCE。

問題是,當我試圖在tinyMCE初始化後更改textarea的值時,則什麼也沒有發生。

這裏是一個例子。

  1. 創建textarea的:

    <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. 我想陳GE TextView的內容(但不工作)

我已經tryed使用相同的初始化TinyMCE的前

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

我也tryed刪除了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 

我出出主意......非常感謝你的幫助....這裏

回答

23

問題是你將看不到任何東西,如果你輸入文本或HTML到你的textarea。 當tinymce被初始化時,你的textarea會被隱藏。您所看到的是一個可用的內容框架,用於編輯和設置內容。有幾個事件會導致tinymce將其內容寫入編輯器的html源元素(在你的情況下是你的textarea)。

如果你想設置的編輯器的內容(這是可見的),你將需要調用類似

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>'); 
+0

感謝Thariama,我歌廳這裏有一個錯誤:tinymce.get('title')未定義 – 2012-08-03 10:03:24

+0

引用[this](http://www.tinymce.com/wiki.php/API3:method.tinymce.Editor.setContent )。 – Prasanth 2012-08-03 10:46:13

+0

@goldenparrot,謝謝,我已經嘗試過,但仍然是同樣的問題。 – 2012-08-03 11:33:35

0

它適用於我。只要將它放在HTML代碼中,而不是去TinyMCE的

<textarea> html CONTENT</textarea> 
3

只要這個工作對我來說

$("#description").val(content); 
+3

這適用於版本3,但不適用於版本4. – Sergi 2015-09-15 13:26:27

6

您可以再次使用tinyMCE.activeEditor.setContent('<span>some</span> html');

Check this Answer

+0

如果您覺得此問題重複,則應將其標記爲如此。請不要發佈其他Stack Overflow問題的鏈接作爲答案。 – JAL 2015-12-02 03:31:22

+0

抱歉沒有注意到同一用戶的帖子。謝謝(你的)信息。 – 2015-12-02 07:00:20

+0

偉大的解決方案! – 2017-07-18 08:58:06