2011-09-13 16 views
16

Mam te dwie linie kodu jeden po drugim.Poczekaj na TinyMCE do załadowania

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

Druga linia próbuje ustawić zawartość jeszcze przed wykonaniem nalepki. Myślę, że przyczyną jest błąd "tinyMCE.activeEditor is null".

Czy istnieje sposób oczekiwania na załadowanie? Dzięki

Odpowiedz

42

Wersja 4 TinyMCE używa nieco innej metody wiązania zdarzeń.

Wersja 3

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

Wersja 4

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

referencyjny: 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, to było to. Dziękuję Ci. – puargs

5

Jeśli nie można uzyskać dostępu do tinymce.init({...}) deklaracja (jak w WordPress na przykład), można również użyć addeditor zdarzenie:

/// 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

Krwawy ładunek edytora tekstów WordPressa doprowadza mnie do szału. Tak bardzo za to. – dewd