window.onunload 在 IE 9/10/11 中不起作用?

问题描述 投票:0回答:3

下面的代码在 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+中工作?

希望我们的堆栈用户能够帮助我。

javascript internet-explorer dom-events
3个回答
0
投票

不知道为什么它不适合你,因为我很确定所有 IE 浏览器都支持它。

尝试这种方法,总体来说可能更好:) https://developer.mozilla.org/en-US/docs/Web/Reference/Events/unload?redirectlocale=en-US&redirectslug=DOM%2FMozilla_event_reference%2Funload


0
投票

我将冒险猜测您的

parent.logout()
方法对您的服务器执行异步请求。如果是这种情况,那么无论如何,您的里程可能会因浏览器而异,因为大多数浏览器可能会在页面卸载时取消任何不完整的请求。

一种选择是使用同步请求,但这些通常不利于可用性,并且当服务器返回响应的时间比平时更长时会导致沮丧。

另请参阅:beforeunload/unload 能否用于可靠地发送 XmlHttpRequests


-1
投票

我也有同样的问题,仅在 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
  }
© www.soinside.com 2019 - 2024. All rights reserved.