2010-08-17 15 views
6

Wenn ich auf eine Schaltfläche klicke, die ein Postback auf dem UpdatePanel verursacht, ruft es das tinyMCE.triggerSave() auf.Wie man TinyMCE nach dem Postback in einem UpdatePanel behält

Es lädt die Platte und der Editor wieder auftauchen, aber wenn ich versuche tinyMCE.triggerSave() das zweite Mal, dass ich die folgende Fehlermeldung zu nennen:

g.win.document is null 

ich, obwohl es wurde die alte Instanz bekommen, aber ich m entferne auch das Steuerelement (tinyMCE.execCommand('mceRemoveControl',false,'Editor');), nachdem ich das Speichern aufgerufen habe. Trotzdem stürzt es beim zweiten Mal noch ab.

Wie soll ich es beheben?

+1

Haben Sie bei http://stackoverflow.com/questions/699615/cant-post- sah zweimal-von-der-gleichen-ajax-tinymce-textarea und http://stackoverflow.com/questions/547327/how-to-make-tinymce-work-inside-an-updatepanel? – Tchami

Antwort

2

Nach viel Verwirrung entdeckte ich, dass das Update, das @André Gadonski gepostet hat nicht mehr funktioniert in TinyMCE Version 4. Nicht nur funktioniert es nicht, es bietet keine Fehlerrückmeldung an die Konsole!

Der neue Befehl ist mceRemoveEditor

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

ich, dass diese gefunden kann entweder vor oder nur das Panel ASP-Update vor dem erneuten initalising TinyMCE direkt verwendet werden, wird aufgefrischt verwendet wird;

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

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

Dies! Denken Sie daran, 'tinyMCE.triggerSave();' vorher aufzurufen, sonst verlieren Sie alles, was Sie in den Editor eingegeben haben. – GJKH

+0

Ich bin für 3 Stunden in diesem Problem stecken, haben Sie den obigen Code in '$ (Dokument) .ready ({..})' Funktion geschrieben? – Kamran

6

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

Bevor Sie das UpdatePanel verlassen, wird tinyMCE gezwungen, es komplett zu entfernen, und wenn Sie es erneut hinzufügen, stürzt es nicht ab.

+1

DANKE !! Das hat mich verrückt gemacht! Ich danke dir sehr! Googling dies jetzt für über 90 Minuten. – Lukas

2

Verwenden Sie für tinymce 3.2.x Folgendes, um die tinyMCE-Instanz in IE8 oder einem anderen Browser zu entfernen. Die Funktion ynymce.execCommand macht Eingabefelder in IE8 nicht editierbar.

Dies wird Fehler "Berechtigung verweigert" beheben, ohne andere Eingabefelder auf der gleichen Seite zu deaktivieren.

2

ich habe das selbe problem.for fix it du master scriptcode für element erstellen post zurück. meine Schaltfläche erstellen Post zurück, ich hinzufügen OnClientClick():

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

und Skript ist:

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