2010-08-17 51 views
6

當我點擊一個導致UpdatePanel回發的按鈕時,它將調用tinyMCE.triggerSave()如何在UpdatePanel回發後保留TinyMCE

它重新加載面板和編輯器再次出現,但是當我嘗試調用tinyMCE.triggerSave()我第二次出現以下錯誤:

g.win.document is null 

我雖然是越來越老的實例,但我我也會在調用保存後刪除控件(tinyMCE.execCommand('mceRemoveControl',false,'Editor');)。即使如此,它仍然是第二次崩潰。

我該如何解決?

+1

你有沒有看着http://stackoverflow.com/questions/699615/cant-post-兩次從同一個ajax-tinymce textarea和http://stackoverflow.com/questions/547327/how-to-make-tinymce-work-inside-an-updatepanel? – Tchami 2010-08-17 14:05:46

回答

2

經過多次的混淆,我發現修復了哪些@André Gadonski的貼子不再適用於TinyMCE版本4.它不僅不起作用,它不會向控制檯提供錯誤反饋!

新命令是mceRemoveEditor

來源:http://www.tinymce.com/forum/viewtopic.php?id=31256

我發現,這可以直接前重新initalising TinyMCE的或僅僅是ASP更新面板之前使用是刷新使用;

var prm = Sys.WebForms.PageRequestManager.getInstance(); 
prm.add_beginRequest(BeginRequestHandler); 

function BeginRequestHandler(sender, args) { 
    tinymce.execCommand('mceRemoveEditor', true, 'EditorID'); 
} 
+0

這個!請記得在執行此操作之前調用'tinyMCE.triggerSave();否則將失去輸入到編輯器中的任何內容。 – GJKH 2016-03-30 19:30:19

+0

對於這個問題,我被困住了3個小時,你是否已在'$(document).ready({..})'函數中編寫了上述代碼? – Kamran 2017-02-10 10:08:31

6

tinyMCE.execCommand('mceRemoveControl',true,'Editor');

在離開UpdatePanel之前,它會強制tinyMCE完全移除,然後再次添加時它不會崩潰。

+1

謝謝!這一直令我瘋狂!非常感謝!現在用了90多分鐘。 – Lukas 2013-07-22 21:10:39

2

對於tinymce 3.2.x,請使用以下命令刪除IE8或任何其他瀏覽器中的tinyMCE實例。由於tinymce.execCommand函數使輸入字段在IE8中不可編輯。

tinyMCE.remove(editor); //editor is instance of tinymce editor and not editor id 

這將修復「Permission Denied」錯誤,而不禁用同一頁面中的其他輸入字段。

2

我有同樣的問題。爲了修復它,你要添加腳本代碼爲元素創建回發。我的按鈕創建回傳,我添加它的OnClientClick():

<asp:LinkButton ID="lbnSave" OnClick="lbnSave_Click" ToolTip="Add New" OnClientClick="dotim()" 
         runat="server">save</asp:LinkButton> 

和腳本是:

function dotim() { 
    tinyMCE.triggerSave(); 
    } // this is my attempt at a fix