2011-09-13 20 views
16

Tengo estas dos líneas de código una tras otra.Espere a que TinyMCE cargue

tinymce.execCommand('mceAddControl',true,'email_body'); 
tinyMCE.activeEditor.setContent(data.tplCustom.htmltemplate); 

La segunda línea intenta establecer el contenido incluso antes de que se complete el proceso. Creo que por eso estoy obteniendo el error "tinyMCE.activeEditor is null".

¿Hay alguna manera de esperar hasta que se cargue? Gracias

Respuesta

42

La versión 4 de TinyMCE utiliza un método de vinculación de eventos ligeramente diferente.

Versión 3

// v3.x 
tinymce.init({ 
    setup : function(ed) { 
     ed.onInit.add(function(ed) { 
      console.debug('Editor is done: ' + ed.id); 
     }); 
    } 
}); 

Versión 4

// v4.x 
tinymce.init({ 
    setup: function (ed) { 
     ed.on('init', function(args) { 
      console.debug(args.target.id); 
     }); 
    } 
}); 

Referencia: http://www.tinymce.com/wiki.php/API3:event.tinymce.Editor.onInit http://www.tinymce.com/wiki.php/Tutorial:Migration_guide_from_3.x

+0

Booya, eso fue todo. Gracias. – puargs

5

Si no puede acceder a la tinymce.init({...}) declaración (como en WordPress por ejemplo), también se puede utilizar addeditor evento:

/// Fires when an editor is added to the EditorManager collection. 
    tinymce.on('addeditor', function(event) { 
    var editor = event.editor; 
    var $textarea = $('#' + editor.id); 
    console.log($textarea.val()); 
    }, true); 

TinyMCE 'addeditor' event documentation

+0

La sangrienta carga del editor de WordPress tinymce me ha estado volviendo loco. Thx tanto para esto. – dewd

Cuestiones relacionadas