2011-10-03 35 views
4

我們有一個表格有很多textareas(在某些情況下,多達20個)。每個文字區域被改造成通過TinyMCE的jQuery插件所見即所得的編輯器,如下所示:TinyMCE JQuery插件並不總是更新文本區

var tinymceoptions = { 
    script_url: '/Scripts/tiny_mce/tiny_mce.js', 
    theme: "advanced", 
    mode: "textareas", 
    elements: "text,html1", 
    theme_advanced_buttons1: "bold,italic,underline,formatselect,separator,image,insertfile,separator,blockquote,bullist,numlist,separator,undo,redo,separator,link,unlink,separator,code,insertimage", 
    theme_advanced_buttons2: "", 
    theme_advanced_buttons3: "", 
    theme_advanced_toolbar_location: "top", 
    theme_advanced_toolbar_align: "left", 
    theme_advanced_blockformats: "h1,h2,h3,p", 
    width: '100%', 
    content_css: Settings["tiny_mce_css"], 
    plugins: "advimage,advlink,autoresize,inlinepopups,imagemanager,paste", 
    relative_urls: false, 
    forced_root_block: false 
}; 

$('textarea.editor').tinymce(tinymceoptions); 

我們遇到的問題是,時間約95%,在文字區域沒有得到與所見即所得的內容更新之前以形成POST。我們甚至還試圖迫使通過每個MCE編輯循環和調用save()方法如下,之前提交表單保存:使用Fiddler再次

$('textarea.editor').each(function() { 
     $(this).tinymce().save(); 
    }); 

是檢查,我發現, textarea仍未被更新爲適當的值。

有沒有人有任何線索可能會導致此?

UPDATE

爲了使問題更...有趣的...我已經加入了以下回調和我得到奇怪的結果。當表單發佈WORKS時,每按一次鍵,getContent()的值就會改變。當窗體後不工作,是的getContent返回不斷的初始值,不管我有多麼內容輸入:

setup: function (ed) { 
    ed.onSaveContent.add(function (ed) { 
     console.debug('save content: ' + $(this).tinymce().getContent()); 
    }); 
    ed.onKeyPress.add(function (ed, e) { 
     console.debug('Editor contents was modified. Contents: ' + $(this).tinymce().getContent()); 
    }); 
} 

更新2

越來越近?我發現清除緩存似乎暫時「修復」了問題。隨後的訪問將顯示中斷的行爲。

回答

6

我確定濫用head.js導致問題。我們正在通過head.ready()上的ajax加載一些項目,並在$ .ready()期間應用tinyMCE。將$ .ready()更改爲head.ready()解決了這個問題。

+0

謝謝。這也適用於我(在幾個小時後追鬼!) –

+0

非常感謝,我希望如果我可以多投一票.. –

+0

@AamirAdnan別擔心,我會幫你:) –