GWT Window.ClosingHandler捕获所需的url

GWT Window.ClosingHandler catch required url

本文关键字:url Window ClosingHandler GWT      更新时间:2023-09-26

是否有方法仅在需要时启动Window.ClosingHandler?在我的入口点内,我添加了以下代码,以便有一个弹出窗口,告诉客户如果点击外部链接,他将退出页面。

public static void addWindowClosingHandler(){
    Window.addWindowClosingHandler(new Window.ClosingHandler() {
        public void onWindowClosing(Window.ClosingEvent closingEvent) {
            closingEvent.setMessage("Are you sure you want to proceed?");
        }
    });
}

问题是,即使我试图从我的页面下载内容,它也会着火。然后我需要了解被调用的页面是在网站之外,还是所需的页面是内部。有没有办法理解哪一个将成为登录页?

这取决于您试图下载文件的方式。如果您只是打开一个新窗口下载文件,它将帮助您避免触发窗口关闭处理程序。

    Button downloadBtn = new Button("Download File");
    downloadBtn.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            Window.open("http://urlforfiledownload", "download", "");
        }
    });

最后,我找到了另一个合适的解决方案,即使我最终可能会使用@Ajax提供的"_blank"解决方案。

在此链接中https://groups.google.com/forum/embed/#!topic/google-webToolkit/Y9hnPFtySuU描述了使用iframe下载文档的另一种方式。步骤应为:

1) 在活动中包含一个iframe,您知道它将被启动下载操作。

2) 按下下载按钮时,只需将url提供给带有空白目标的iframe。

除了浏览器决定打开框架内的内容而不是下载的情况外,这将是一个很好的解决方案。在这种情况下,它会显示为一个错误。因此,我可能会接受"_blank"解决方案作为最佳解决方案。