2010-08-17 14 views
6

Cuando hago clic en un botón que causa una devolución de datos en el UpdatePanel llama al tinyMCE.triggerSave().Cómo mantener TinyMCE después de la devolución de datos en un UpdatePanel

se vuelven a cargar el panel y el editor muestran de nuevo, pero cuando trato de llamar tinyMCE.triggerSave() la segunda vez que sale el siguiente error:

g.win.document is null 

pensé que estaba recibiendo la instancia antigua, pero yo' m también quitando el control (tinyMCE.execCommand('mceRemoveControl',false,'Editor');) después de llamar al guardado. Aun así, todavía se cuelga la segunda vez.

¿Cómo debería solucionarlo?

+1

¿Has mirado en http://stackoverflow.com/questions/699615/cant-post- two-from-the-same-ajax-tinymce-textarea y http://stackoverflow.com/questions/547327/how-to-make-tinymce-work-inside-an-updatepanel? – Tchami

Respuesta

2

Después de mucha confusión, descubrí que la corrección que @André Gadonski publicado ya no funciona en la versión 4 de TinyMCE. No solo no funciona, ¡no proporciona ningún comentario de error a la consola!

El nuevo comando es mceRemoveEditor

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

he encontrado que este puede ser utilizado directamente antes de volver a initalising TinyMCE o justo antes del panel de actualización ASP se actualiza utilizando;

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

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

Esto! recuerde llamar 'tinyMCE.triggerSave();' antes de hacerlo, de lo contrario, perderá todo lo que ingresó en el editor. – GJKH

+0

Estoy atrapado por 3 horas en este tema, ¿has escrito el código anterior en la función '$ (document) .ready ({..})'? – Kamran

6

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

Antes de salir del UpdatePanel, forzará a que tinyMCE se elimine por completo y luego cuando vuelva a agregarlo no se bloqueará.

+1

¡GRACIAS! ¡Esto me ha estado volviendo loco! Muchas gracias! Estuve buscando en Google esto por más de 90 minutos ahora. – Lukas

2

Para tinymce 3.2.x, utilice lo siguiente para eliminar la instancia de tinyMCE en IE8 o en cualquier otro navegador. Como la función tinymce.execCommand hace campos de entrada no editables en IE8.

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

Esto arreglará el error de "Permiso denegado" sin desactivar otros campos de entrada en la misma página.

2

Tengo el mismo problema. Para solucionarlo, agregue código de script para elemento crear publicación. mi botón Crear segundo palo, lo añado OnClientClick():

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

y el guión es:

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