2015-12-03 17 views
0

我使用jsPanel有一種模式窗口出現在我的網站上。tiniMCE不初始化在jsPanel

在jsPanel init中,我用textarea和回調函數指定內容。

一旦我的jsPanel被創建,我嘗試在回調中初始化一個tinyMCE。我測試tinyMCE實例,我的編輯器在實例列表中......但在jsPanel中它顯示爲普通textarea,而不是tinyMCE。

有什麼想法? 下面是代碼:

function oninitjspanel() 
{ 
    console.log('before init modal mce'); 
    tinymce.init({ 
     selector: "#email_message", 
     entity_encoding : "raw", 
     encoding: "UTF-8", 
     theme: "modern", 
     height: "100%", 
     width: "100%", 
     plugins: [ 
     "advlist autolink lists link image charmap print preview hr anchor pagebreak", 
     "searchreplace wordcount visualblocks visualchars code fullscreen", 
     "insertdatetime media nonbreaking save table contextmenu directionality", 
     "emoticons template paste textcolor colorpicker textpattern" 
     ], 
     toolbar1: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image preview media | forecolor backcolor emoticons", 
     image_advtab: true, 
    }); 
    console.log('after init modal mce'); 
    for (var i = 0; i < tinymce.editors.length; i++) 
    { 
     console.log(i + " Editor id:", tinymce.editors[i].id); 
    } 
} 

$('#new_document').click (function() { 
    var content = '<div id="choix_document"><textarea id="email_message"></textarea></div>';     
    $.jsPanel({ 
     content:  content, 
     position:  "center", 
     theme:   "success", 
     title:   "Nouveau document/email", 
     size:   { width: function(){ return $(window).width()*0.75 }, 
          height: function(){ return $(window).height()*0.75 } }, 
     toolbarFooter: "<div class='email_submit'>Envoyer email</div><div id='email_returnmessage'></div>", 
     callback:  oninitjspanel(), 
    }); 

}); 

控制檯日誌:

before init modal mce 
after init modal mce 
0 Editor id: model_editor 
1 Editor id: email_message 

編輯:一兩件事,如tinyMCE的有模態焦點問題,我申請我的頁面加載以下,以防止問題:

$(document).on('focusin', function(e) { 
    if ($(e.target).closest(".mce-window, .moxman-window").length) { 
     e.stopImmediatePropagation(); 
    } 
}); 

回答