2011-09-13 36 views
16

Tôi có hai dòng mã này lần lượt.Đợi TinyMCE tải

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

Dòng thứ hai cố gắng đặt nội dung ngay cả trước khi thông tin được thực hiện. Tôi nghĩ nguyên nhân của việc tôi nhận được lỗi "tinyMCE.activeEditor is null".

Có cách nào để chờ cho đến khi được tải không? Cảm ơn

Trả lời

42

Phiên bản 4 của TinyMCE sử dụng phương pháp ràng buộc sự kiện hơi khác.

Version 3

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

Version 4

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

tham khảo: 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, đó là nó. Cảm ơn bạn. – puargs

5

Nếu bạn không thể truy cập vào các tinymce.init({...}) khai (như trong WordPress chẳng hạn), bạn cũng có thể sử dụng addeditor sự kiện:

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

Tải xuống trình soạn thảo WordPress tinymy đẫm máu đã khiến tôi phát điên. Thx rất nhiều cho việc này. – dewd

Các vấn đề liên quan