javascript windows.onunload在IE 9/10/11中不工作?

omvjsjqw  于 2023-10-14  发布在  Java
关注(0)|答案(3)|浏览(94)

下面的代码在IE8中运行良好。
下面是我的代码:

window.onbeforeunload = function () {

    return  "Are you sure want to LOGOUT the session ?";
}; 

window.onunload = function () {

    parent.logout();
};

在IE9+
window.onbeforeunload工作,我得到了警报。
但是window.onunload不工作。
我还尝试了Group Policies in Internet Explorer 9来启用Allow Internet Explorer 8 Shutdown Behavior
如何让window.onunload在IE9+中工作?
希望我们的堆栈用户能帮助我。

i2byvkas

i2byvkas1#

不知道为什么它不为你工作,因为我很确定它在所有这些IE浏览器支持。
试试这个方法,总体上可能更好:)https://developer.mozilla.org/en-US/docs/Web/Reference/Events/unload?redirectlocale=en-US&redirectslug=DOM%2FMozilla_event_reference%2Funload

dly7yett

dly7yett2#

我将冒险猜测您的parent.logout()方法对您的服务器执行异步请求。如果是这样的话,那么您的里程可能会因浏览器而异,因为大多数浏览器可能会在页面卸载时取消任何未完成的请求。
一种选择是使用同步请求,但这通常对可用性不利,并且当服务器返回响应的时间比平时长时会导致挫折。
参见:Can beforeunload/unload be used to send XmlHttpRequests reliably

zed5wv10

zed5wv103#

我也有同样的问题,不工作在IE只

@HostListener('window:unload', ['$event'])
  unloadHandler($event) {
    this.LogOut();
  }
  @HostListener('window:beforeunload', ['$event'])
  public beforeunloadHandler($event) {
    var msg = this.messageBundle['windowClosemsg']
    $event.returnValue = msg;
    return false
  }

相关问题