java - CloseHandler<Window> 和 Window.ClosingHandler() 在 IE 中的工作方式不同

标签 java internet-explorer firefox gwt event-handling

在 IE 下,CloseHandler 和 Window.ClosingHandler() 似乎无法正常工作或未以与 Firefox 不同的方式触发事件。

 Window.addWindowClosingHandler(new Window.ClosingHandler() {

                    @Override
                    public void onWindowClosing(ClosingEvent event) {
                        event.setMessage(message);

                    }




         Window.addCloseHandler(new CloseHandler<Window>() {

                    @Override
                    public void onClose(CloseEvent<Window> event) {
                        //Window.alert("debug1");
                        if(recordId!=null){


                            DatabaseQueryServiceAsync dbQueryService = DatabaseQueryService.Util.getInstance();
                            dbQueryService.releaseRecordLock(recordId, new AsyncCallback<String>() {

                                @Override
                                public void onFailure(Throwable arg0) {
                                }

                                @Override
                                public void onSuccess(String arg0) {

                                }
                            });



                        }
                    }


                });

                });

例如,当我在小部件内交换面板时,IE 下的 ClosingHandler 会显示消息。这不会发生在 Firefox 中。

CloseHandler 在 IE 中窗口关闭时似乎根本不会触发,但在 firefox 中会触发。有趣的是,当我在 addCloseHandler() 方法中放置 Window.alert("debug1") 消息时,它会运行下面的回调,但是一旦我删除它,回调就不会发生.在 firefox 中,它可以在两种情况下运行并运行回调。所以,我基本上是在拉扯我的头发,并不真正了解发生了什么。任何帮助将不胜感激。谢谢。

最佳答案

就我个人而言,我没有发现 addCloseHandler 有多大用处,但是 addClosingHandler 对确认导航非常有用。

当您说“在您的小部件中交换面板”时,我不确定我是否理解您的意思。您要更改历史 token 吗? (即 History.newItem("page");History 小部件)或者您可能手动将小部件添加到 DOM?然而,在这两种情况下,IE 和 Firefox 都不应该触发 ClosingEvent

我对 ClosingEvent 的体验是,它在浏览器之间非常统一,因此也许值得更详细地描述您观察到的确切差异。

关于java - CloseHandler<Window> 和 Window.ClosingHandler() 在 IE 中的工作方式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2587197/

相关文章:

html - 显示 :table-cell breaks child element width in Firefox

java - 在 Java 中解析字符串

java - 如何编写 dockerfile 以在包含 jdk 的现有 spring boot 项目上添加 maven 构建

css - 在 IE 中将图像设为透明以显示不透明背景

internet-explorer - 试图对已标记为删除的注册表项进行非法操作 - 仅在 IE 中

jquery - 使用 jQuery 阻止 iFrame 内的 F5

jquery - 如何在 Firefox Scratchpad 中使用 jQuery?

html - 缩小图像在 Firefox、IE9 和 Opera 中没有抗锯齿,但在 Chrome 和 Safari 中有

java - 在 Maven 中配置 hibernate-jpamodelgen

java - 使用 GSON 解析 key - 对象 JSON