Tinymce:如何检查窗户是否关闭?

时间:2014-08-29 07:23:07

标签: javascript jquery tinymce-4

您好我有一个插件可以打开一个带有自己的html页面的窗口。

tinymce.PluginManager.add('ds_format_edit', function (editor, url) {
editor.addMenuItem('ds_format_edit', {
    text: 'Formatvorlage anpassen...',
    icon: false,
    onclick: function () {
        editor.execCommand("ds_format_edit");
    }

});

editor.addCommand('ds_format_edit', function () {
    editor.windowManager.open({
        title: "Formatvorlagen anpassen ...",
        url: 'DSFormatEditDialog.html',
        width: 800,
        height: 350,
        buttons: [
                {
                    text: 'OK',
                    onclick: function () {
                        top.tinymce.activeEditor.windowManager.close();
                    }
                },
                { text: 'Cancel', onclick: 'cancel' }
        ]
    }, {
        tinymce_formats: getFormats(),
    });
});
});

tinymce_formats是我传递给窗口的参数。该对话框修改此参数。这一切都有效。 现在,如果窗口已关闭(如果用户按下OK按钮)以获取修改后的参数,我想重新设置tinymce编辑器。 是否有任何开放回调功能或其他方式来实现这一点? 谢谢Felix

修改 我用Button调用这个插件。插件打开一个带参数的窗口。在这个窗口中,我做了一些事情并修改了参数。如果窗口已关闭,我想使用我的restialize功能。我需要一个函数来知道窗口何时关闭以执行reintialize函数。

1 个答案:

答案 0 :(得分:1)

要重置所有内容(按钮状态和内容),您需要卸载编辑器并以这种方式重新初始化:

# Remove TinyMCE instance
tinyMCE.remove();
# Initialize TinyMCE again
tinyMCE.init({ ... });

或者,如果您只需要清空文本内容,请使用:

tinyMCE.get('#my-textarea-id').setContent("");

要告诉您的主应用程序窗口已关闭,您可以触发自定义事件:

{
    text:'OK',
    onclick: function () {
        jQuery(document).trigger('myCustomCloseEvent');
        top.tinymce.activeEditor.windowManager.close();
    }
}

在您的主应用程序中,绑定事件:

jQuery(document).on("myCustomCloseEvent", function()
{
    alert('Window has been closed');
});