2011-09-13 2 views
16

Ho queste due righe di codice una dopo l'altra.Attendere il caricamento di TinyMCE

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

Seconda linea tenta di impostare i contenuti prima ancora che il TinyMCE è fatto. Penso che a causa di ciò sto ottenendo errore "tinyMCE.activeEditor è nullo".

C'è un modo per attendere fino al suo caricamento? Grazie

risposta

42

La versione 4 di TinyMCE utilizza un metodo di associazione eventi leggermente diverso.

Versione 3

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

Versione 4

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

Riferimento: 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, che è stato. Grazie. – puargs

5

Se non è possibile accedere al tinymce.init({...}) Dichiarazione (come in WordPress per esempio), è anche possibile utilizzare 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

Il sanguinoso carico editor di tinima di WordPress mi sta facendo impazzire. Grazie mille per questo. – dewd