2013-07-24 95 views
4

我正在尋找一些關於如何擴展現有tinymce(4.x)插件的例子,例如「鏈接」插件。Tinymce 4.x擴展插件

鏈接插件打開一個對話框窗口...我想要做的是添加一個事件,當對話框打開並修改主體(插入一些額外的HTML與點擊事件)。

這似乎是有問題很好地做到這一點...我想避免一些「頂部」這樣的代碼$('#mce_13').click(...);和而使用類似

editor.on('DialogOpen', function(e) { 
    // if link dialog then 
    $(e.body).append('<div>My HTML</div>'); 
}); 

然而,有沒有這樣的事件,如onDialogOpen ..有沒有最佳做法來實現這一目標?

回答

5

我設法做到這一點的模態窗口(我需要打開/關閉回調),也許你可以建立在它還能檢測開什麼類型的窗口:

tinymce.init({ 
    //... code and setup here 
    setup: function(editor) { 
     editor.on('init',function(e) { 
      setModalEvents(editor); 
     }); 
    }, 
    //... and more here perhaps 
}); 

,然後本身的功能:

// override modal methods to insert events 
function setModalEvents(editor) { 
    editor.windowManager.oldOpen = editor.windowManager.open; // save for later 
    editor.windowManager.open = function(t,r) { // replace with our own function 
     alert("modal window opened, insert callback here"); 
     var modal = this.oldOpen.apply(this, [t,r]); // call original 
     modal.on('close', function() { // set event for close 
      alert("modal window closed, insert callback here"); 
     }); 
     return modal; // Template plugin is dependent on this return value 
    }; 
} 

你可以在tinymce內核中做類似的覆寫,所以這可能會有幫助。

+1

對於我來說可以擴展:) –