2010-12-14 100 views
2

我有ajax表單(http://jquery.malsup.com/form/),我使用jQuery插件來安裝我的TinyMCE編輯器。但我無法在ajax請求中獲取textarea內容。這是因爲它在TinyMCE編輯器的iframe中。我嘗試了幾個谷歌教程,但都沒有爲我工作。編輯器顯示出來,但是當我發送ajax請求時,它無法獲得編輯的textarea內容。使用jQuery插件的Ajax表單的TinyMCE編輯器

這是我如何安裝TinyMCE的編輯器,但這種失敗

$("textarea.tinymce").tinymce({   
    script_url : tinymceUrl, 
    mode : "none", 
    theme : "simple", 
    setup : function(ed) { 
     ed.onChange.add(function() { 
      tinyMCE.triggerSave(true,true); 
     }); 
    } 
}); 
+0

你怎麼試圖抓住的內容嗎? – Thariama 2010-12-14 11:57:48

+0

http://wiki.moxiecode.com/index.php/TinyMCE:Functions#tinyMCE.triggerSave – newbie 2010-12-14 11:59:07

+0

你指的是舊版本的API,新的API位於http://wiki.moxiecode.com/ index.php/TinyMCE:API/tinymce.EditorManager/triggerSave – 2010-12-14 13:00:31

回答

4

onChange事件是「前途未卜」的最好的。我最近通過一個我正在進行的項目來完成這個項目,並且必須將重點放在模糊事件上......這並不漂亮。在我的設置處理程序中,我做了以下。我刪除了特定於我的項目的代碼,並在保存的位置發表評論。

ed.onPostRender.add(function(editor, cm) { 
    // Register focus and blur events on BOTH the window and the doc, this way it works properly in 
    // IE, Firefox & Chrome 
    tinymce.dom.Event.add(editor.getWin(), 'focus', function(e) { }); 
    tinymce.dom.Event.add(editor.getWin(), 'blur', function(e) { /* save on blur */ }); 
    tinymce.dom.Event.add(editor.getDoc(), 'focus', function(e) { }); 
    tinymce.dom.Event.add(editor.getDoc(), 'blur', function(e) { /* save on blur */ }); 
}); 

在附註上,我注意到你正在用triggerSave(true,true)調用編輯器管理器(tinyMCE)。我在3.3.9.2 API中沒有看到,所以我不知道那裏正在嘗試做什麼。在上面的代碼中,正在傳遞編輯器(e)的句柄,並且可以調用方法e.save()來執行保存並將其存儲在由tinyMCE修飾的textarea字段中。

希望有所幫助。

+0

查看了上面提供的鏈接(http://wiki.moxiecode.com/index.php/TinyMCE:Functions#tinyMCE.triggerSave),這是指一個較舊的2.x API可能不再被支持。看看我上面提供的代碼是否可以幫助你嘗試。 – 2010-12-14 12:59:36

1

由於戴夫G已經聲明API鏈接是舊的(我想知道triggerSave的調用)。

請嘗試

tinyMCE.triggerSave();