如何使用Javascript关闭Eclipse中的选项卡?

时间:2016-05-09 06:36:29

标签: javascript eclipse eclipse-plugin

我目前正在将一些插件模块从版本2.x现代化到基于OSGi的4.x.该项目使用Eclipse应用程序并利用其视图和视图。透视体系结构作为标签式浏览器。

研究旧代码并运行Eclipse应用程序,我理解这是一个特定功能的预期行为:

  • 点击链接会在新标签页中打开一个面板,该标签会显示包含Javascript的HTML文件。
  • HTML页面包含一个表格,最终发表在“提交”和“提交”中。取消按钮。
  • 单击任一按钮应关闭选项卡。当然,提交按钮将首先提交表单数据。

以上大多数工作都按预期工作,但是不是仅仅关闭那个选项卡,单击任一按钮会导致整个Eclipse应用程序尝试终止(我收到一个确认提示,询问我是否要退出Eclipse)。在尝试终止Eclipse应用程序之前,提交按钮已成功将提交的信息更新到数据库中。

这是代码的违规部分:

function onSubmit() {
    //processForm();
    if (opener) {
        opener.newAddressValue(newToAddress);
        window.close();
    } else if (parent.parent) {
        parent.parent.newAddressValue(newToAddress);
        parent.parent.closeUsrFrame();
    } else {
        parent.newAddressValue(newToAddress);
        parent.closeUsrFrame();
    }
}            
function onCancel() {
    if (opener) {
        window.close();
    } else {
        parent.closeUsrFrame();
    }
}

我怀疑预期的行为是程序流到达window.close(),此时包含打开的面板的选项卡应该关闭,而是导致整个Eclipse应用程序终止。 使用JavaScript退出Eclipse 4.x中当前选项卡的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

如果程序使用SWT Browser widget显示HTML文件,您可以使用Browser.addCloseWindowListener(CloseWindowListener listener)挂钩由javascript window.close触发的事件。

如果您的程序确实提示退出Eclipse,那么您应该搜索实现CloseWindowListener接口的类。按照您的意愿修改其行为。