4

我正在寻找一些关于如何扩展现有 tinymce (4.x) 插件的示例,例如“链接”插件。

链接插件打开一个对话框窗口......我想做的是在打开对话框时添加一个事件并修改正文(插入一些带有点击事件的额外 HTML)。

做得好似乎有问题......我想避免一些“顶级”代码$('#mce_13').click(...);,而是使用类似的东西

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

但是没有这样的事件onDialogOpen......是否有实现这一目标的最佳实践?

4

1 回答 1

6

我设法为模态窗口执行此操作(我需要打开/关闭的回调)也许您可以在其上构建以检测打开的窗口类型:

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 核心中对其他内容进行类似的覆盖,所以这可能会有所帮助。

于 2013-10-15T12:53:55.377 回答