- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
窗口关闭处理程序在我的 Chrome 代码上不起作用(我使用的是它的最新版本,26)
我有一个监听 Window.ClosingEvent
的类。如果在用户上传文件时关闭窗口(关闭窗口,用户键入另一个 url...),应用程序会提示用户“你确定吗?”。
GWT 2.5.0 和 2.5.1IExplorer 10 好火狐 21 正常Opera 尚不支持该事件。Chrome 26 不工作。
这是 GWT 代码:
public abstract class ActiveUploadTransitionController extends TransitionController implements ClosingHandler {
...
@Override
public void onWindowClosing(Window.ClosingEvent event){
if(showMessage()){
if(folder != null && folder.hasActiveFileUploads()){
event.setMessage(getUploadActiveLeavingMessage());
}
}
}
...
protected ActiveUploadTransitionController()
{
...
Window.addWindowClosingHandler(this);
...
}
}
以上代码在 Explorer、Firefox 中符合并正常工作,所以我认为代码没问题。
有趣的是,如果我在 JavaScript 中实现隔离测试,它在 Explorer、Firefox 和 Chrome 浏览器中运行良好。
//JavaScript
var handler = function(e){
var show = true;
if(show){
var msg = "messageTest";
(e || window.event).returnValue = msg;
return msg;
}
return;
}
if(window.addEventListener){
window.addEventListener("beforeunload", handler);
}
因为独立的 JavaScript 有效,所以我也尝试以 native 方式实现它。一样的问题。适用于 IExplorer、FireFox,但不适用于 Chrome。
var handler = function (e) {
var showMessage = that.@com.skydox.client.home.ActiveUploadTransitionController::showMessage()();
if(showMessage){
var confirmationMessage = that.@com.skydox.client.home.ActiveUploadTransitionController::getUploadActiveLeavingMessage()();
(e || window.event).returnValue = confirmationMessage;
return confirmationMessage;
}
tmpBeforeUnload(e);
return;
}
if($wnd.addEventListener){
$wnd.onbeforeunload = handler;
}
这个问题让我抓狂。伙计们有什么想法吗?
谢谢大家!
最佳答案
我发现了同样的问题。非常令人沮丧。
本站报价不错workarounds对于大多数浏览器。
为 Chrome 提供的方法抛出一个“你确定吗?”用户关闭窗口的对话框。它需要这样做才能可靠地获取 onClose 事件。任何关闭处理都需要在此之前完成,因此如果用户点击“否”,页面/应用程序仍需要运行。
关于javascript - GWT:windowClosing 处理程序未在 chrome 中正确处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16606690/
在 Swing 应用程序中,我想知道所有的资源清理工作,例如:网络资源关闭、停止线程、关闭文件句柄... 是否应该在 windowClosed 中完成?或 windowClosing ? 谢谢。 最佳
我试图在窗口(和脚本)关闭之前保存信息(将 vector 保存到文件中)。我到处检查和搜索,但找不到该做什么。 我遇到的错误是 unreported exception java.lang.excep
import javax.swing.*; import java.awt.event.*; public class Test { Test() { JFrame f=ne
我有多个自定义对话框,我想要一种简单的方法来指定关闭操作。首先,我使用匿名内部 windowListener 类,并以这种方式为每个对话框指定关闭方法。 我认为创建自己的类并实现 WindowList
我有一个问题,为什么“windowClosed”方法没有在我的测试代码中被调用,如下所示, import java.awt.event.WindowAdapter; import java.awt.e
采用以下代码: import java.awt.Dialog; import java.awt.event.ActionEvent; import java.awt.event.WindowAdapt
有没有办法查看 JFrame 中究竟是什么触发了 WindowClosing 事件?目前 getSource() 似乎只返回 JFrame: public void windowClosing(Win
当我关闭浏览器时,如何触发 windowClosing() 事件,以在小程序中进行一些清理? 最佳答案 destroy() 方法应在浏览器卸载对象之前调用。有时,destroy 方法没有足够的时间来关
对大多数人来说,我似乎有相反的问题。我有以下非常标准的代码来查看用户是否想在关闭窗口之前进行一些保存: frame.setDefaultCloseOperation(WindowConstants
我正在尝试将一个类中的信号连接到另一个类中的插槽,但是当我这样做时,我的应用程序在启动时崩溃了。我在这里和 Qt 论坛上阅读了一些其他帖子,这些帖子无法连接自定义信号,但我认为我连接错误。任何帮助是极
我有一个小问题。 我的 Java 应用程序拥有一些 native 资源。我想在退出应用程序之前释放这些资源。因此我写了一个 WindowListener在 windowClosed 中释放这些资源事件
各种 OS X 版本上的 Apple JVM 显然已被破坏,因为它们在应该生成 WindowClosing 事件时却没有生成(例如,如果您通过单击关闭按钮来关闭应用程序的主 JFrame)。 (在最近
窗口关闭处理程序在我的 Chrome 代码上不起作用(我使用的是它的最新版本,26) 我有一个监听 Window.ClosingEvent 的类。如果在用户上传文件时关闭窗口(关闭窗口,用户键入另一个
我正在尝试使用 NetBeans 编写 GUI 应用程序,但我对此越来越厌倦了...... 我使用 NetBeans 构建了一个“Java 桌面应用程序”。它将主窗体创建为 org.jdesktop.
我有一个扩展 JDialog 的类,它有一个窗口监听器: class MyClass extends JDialog { public MyClass() { setDef
我正在尝试编写应用程序,该应用程序将在按下按钮时创建新窗口,显示当前窗口计数并关闭窗口和关闭窗口时的线程。 基本上,功能是这样的(其中一些正在工作): 启动应用程序时显示窗口(确定) 按按钮创建新窗口
在下面的代码片段中,除非您从代码片段中删除一行代码,否则不会调用 WindowClosing 事件。要删除的代码行是: jFrame.setUndecorated(true); 显然这个 setUnd
退出 Java 应用程序时,我无法关闭套接字。我认为确保套接字关闭的一个简单方法是将其挂接到 Swing JFrame 中的 windowClosing 上,如下所示: frame.addWi
当用户单击“关闭”按钮或另一个显示“退出”的 JButton 时,我必须将程序的状态保存在 xml 中。我有它,所以当窗口关闭时它会使用 WindowListener 运行它运行它。但这仅在您单击“R
我是一名优秀的程序员,十分优秀!