【问题标题】:onbeforeunload doesn't catch all eventsonbeforeunload 不能捕获所有事件
【发布时间】:2023-04-08 23:12:01
【问题描述】:

我对 onbeforeunload 事件有疑问

这是管理事件的代码部分

myWindow = window.open("configuration?id="+id);
myWindow.onbeforeunload = function(){ 
    window.location.href = "service?id="+id;
};

configuration 是一个与服务器有很多交互(GET 或 POST 调用)的页面。

卸载事件函数(window.location.href = "service?id="+id)是配置页面关闭后的页面刷新。

我的问题是: 当配置页面第一次对服务器进行 GET 调用时,服务会刷新。但在那之后,当配置进行另一个 GET 调用时,服务不起作用。

【问题讨论】:

  • 我不确定您是否可以在 onbeforeunload 事件中更改 window.location.href。
  • ...但是该代码第一次工作...

标签: javascript onbeforeunload


【解决方案1】:

我认为您要么需要在弹出窗口中显示的该页面的实际代码中包含 onbeforeunload 事件处理程序,要么像这样处理第二个卸载事件:

myWindow = window.open("configuration?id="+id);
myWindow.onload = function() {
    myWindow.onbeforeunload = function(){ 
        window.location.href = "service?id="+id;
    }
}

【讨论】:

  • 很抱歉,没有测试,这只是一个想法,让你朝着正确的方向前进......
  • 好的,onLoad 必须是小写,使用 onload 你的代码就像我的代码一样工作:只有第一次......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-14
  • 1970-01-01
  • 1970-01-01
  • 2019-05-21
  • 1970-01-01
  • 2021-03-05
  • 2019-11-01
相关资源
最近更新 更多