我目前正在将一些插件模块从版本2.x现代化到基于OSGi的4.x.该项目使用Eclipse应用程序并利用其视图和视图。透视体系结构作为标签式浏览器。
研究旧代码并运行Eclipse应用程序,我理解这是一个特定功能的预期行为:
以上大多数工作都按预期工作,但是不是仅仅关闭那个选项卡,单击任一按钮会导致整个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中当前选项卡的正确方法是什么?
答案 0 :(得分:0)
如果程序使用SWT Browser widget
显示HTML文件,您可以使用Browser.addCloseWindowListener(CloseWindowListener listener)
挂钩由javascript window.close
触发的事件。
如果您的程序确实提示退出Eclipse,那么您应该搜索实现CloseWindowListener
接口的类。按照您的意愿修改其行为。