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

How do I close a tab in Eclipse using Javascript?

本文关键字:选项 Eclipse 何使用 Javascript      更新时间:2023-09-26

我目前正在将一些插件模块从2.x版本现代化到基于OSGi的4.x版本;透视架构,用作选项卡式浏览器。

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

  • 单击链接会在新选项卡中打开一个面板,其中显示一个包含Javascript的HTML文件
  • HTML页面包含以Submit&取消按钮
  • 单击任一按钮都会关闭选项卡。当然,提交按钮将首先提交表单数据

上面的大多数操作都按预期进行,但单击任一按钮都会导致整个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退出Eclipse4.x中当前选项卡的正确方法是什么

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

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