Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 蒂尼姆丝:我怎样才能检查窗户是否关上了?_Javascript_Jquery_Tinymce 4 - Fatal编程技术网

Javascript 蒂尼姆丝:我怎样才能检查窗户是否关上了?

Javascript 蒂尼姆丝:我怎样才能检查窗户是否关上了?,javascript,jquery,tinymce-4,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

嗨,我有一个插件,可以打开一个带有自己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编辑器以获得修改后的参数。 是否有任何打开的回调函数或其他实现方法? 谢谢菲利克斯

编辑: 我用一个按钮来调用这个插件。插件打开一个带有参数的窗口。在这个窗口中,我做了一些事情并修改了参数。如果窗口已经关闭,我想使用我的重新初始化功能。我需要一个知道窗口何时关闭的函数来执行重新初始化功能。

要重置所有内容(按钮状态和内容),您需要卸载编辑器并按如下方式再次初始化它:

# 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');
});

我知道如何删除编辑器。我需要的是一个在窗口关闭时执行的函数。只需使用您在OK按钮(答案更新)上已经定义的onclick回调。是的,但我无法在此位置访问我的重新初始化函数。我的Reinitialize函数是在主代码中实现的,而不是在插件中实现的。如果你想发送到你的主应用程序,你可以从这个回调中触发一个自定义事件。请参见'jQuery.trigger'抱歉,我不完全理解这一点。能给我举个例子吗?