2011-05-13 20 views
1

我正在使用TinyMCE在我的webapp中創建所見即所得編輯器。我需要在高級模式下爲某些textarea進行配置,而在一些模式下則需要在簡單模式下進行配置。我正在像這樣配置TinyMCE。當我嘗試使用多個配置時,TinyMCE提交空白值

<head> 
    <script type="text/javascript"> 
     tinyMCE.init({ 
      mode : "textareas", 
      theme : "simple", 
      editor_selector : "simple" 
     }); 

     tinyMCE.init({ 
      mode : "textareas", 
      theme : "advanced" 
     });    
    </script> 
</head> 

此配置的工作原理和基於textarea的類,以簡單或高級模式顯示TinyMCE。

但是,當我提交表單時會出現問題。服務器得到textarea的空白。(當我只用一個配置TinyMCE的不會出現此問題)

我做了一些搜索和跨建議該說我應該明確要求TinyMCE的做一個提交前將內容保存來了。我試着將這些代碼添加到我的表單中。

$('#postFeedback').click(function(){ 
    tinyMCE.triggerSave(true,true); 
    alert("TextArea val - " + $('input[name=email]').val() + "- " + $('textarea.simple').val()); 
    $('form').submit(); 
}); 

該表單確實被提交,但我有同樣的問題。 textarea中的值爲空白。我還提出了一個警報(如上所示)來檢查textarea的值,它確實是空白的。

一些問題開始:

  • TinyMCE的工作得很好,當我只有一個配置(INIT)。然而,它會弄亂我有兩個?任何線索爲什麼會發生這種情況?
  • 明確要求TinyMCE保存textarea內容是不是很必要?
  • 如何開始調試此問題?

回答

1

您應該使用mode: "exact",初始化您的編輯。然後,你可以初始化使用

tinyMCE.execCommand('mceAddControl', false, editorid); //editorid should be the id of the textarea 

一個TinyMCE的實例和inits的配置將被應用。查閱全文(我不知怎麼感覺有一些非常糟糕的使用兩個inits所有TinyMCE的編輯器(因爲它看起來他們都要求所有人))。

編輯:爲了能夠使用不同的inits你應該使用initialization_object而不僅僅是一個編輯器的ID叫mceAddControl。例如:

var config_tinymce_xy = { 

    mode: 'exact', 
    theme: "advanced", 
    content_css : "my.css", 
    plugins: "code,...", 

    theme_advanced_buttons1 : "code,...", 
    theme_advanced_buttons2 : "...", 
    ... 

}; 

var config_tinymce_xy2 = { 

    mode: 'exact', 
    theme: "simple", 
    content_css : "my.css", 
    ... 
}; 

init_obj = {element_id:'my_editor_id', window: window}; 
$.extend(true, init_obj, config_tinymce_xy); 
tinyMCE.execCommand('mceAddFrameControl',false, init_obj); 
+0

我初始化它兩次的原因是針對不同的textareas基於它們的css類有不同的配置。如果我使用execCommand,我可以自定義該實例的按鈕嗎? – Parag 2011-05-13 13:16:24

+0

是的,這是可能的,你可以定製不同的你喜歡的東西 – Thariama 2011-05-13 13:24:41

+0

感謝它的工作。 – Parag 2011-05-14 09:11:46

相關問題