父窗口关闭时关闭所有子窗口

2023-11-21

我有一个可以打开多个窗口的网络应用程序。我遇到的问题是,当父窗口关闭/刷新时,子窗口保持打开状态。 我尝试过使用onunload and onbeforeunload但它们都没有捕获窗口关闭事件(在 Chrome 和 Firefox 中)。 我有一系列窗口,但刷新后对它们的引用丢失了。

还有其他方法可以捕获此事件吗?

这是我与关闭窗口相关的代码(运行closeAll()外部unload and onbeforeunload关闭所有打开的窗口,但刷新页面时不会关闭):

window.unload = function() {
   closeAll();
}
window.onbeforeunload  = function() {
   closeAll();
}

var closePopup = function(popup) {
   removePopup(popup);
   popup.close();
};

var closeAll = function() {
   for (var popup in _this.popups) {
       closePopup(_this.popups[popup]);
    }
}

这仅适用于 Chrome,但不适用于 Firefox 和 IE(最新版本)。


用这个

var popup = window.open("popup.html", "popup", "width=200,height=200");

window.onunload = function() {
    if (popup && !popup.closed) {
        popup.close();
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

父窗口关闭时关闭所有子窗口 的相关文章

随机推荐

  • SQL Server 循环删除记录超出锁定超时

    我正在测试一个可以一次删除很多很多记录的过程 这不可以TRUNCATE TABLE 因为里面有需要保留的记录 由于体积的原因 我将删除分成了与此类似的循环 Do not block if records are locked SET LOC
  • 当应用程序未打开时收到推送通知时更新徽章编号

    我有一个应用程序 其中我面临这样的问题 徽章编号仅在打开通知时更新 但即使应用程序未打开 我也需要更新徽章编号 有人能帮我吗 您需要设置一个值badge输入您的推送通知负载 根据您的描述 听起来只有您的应用程序正在更新徽章编号 而不是通知本
  • 为什么我们需要在 eval JSON 中添加括号? [复制]

    这个问题在这里已经有答案了 为什么需要添加以下代码 and 用于评估 var strJson eval status val replace PS status val 返回类似的东西 10000048 1 25000175 2 25000
  • 用户可以清除 Service Worker 缓存吗?

    我已经构建了一个使用缓存的渐进式 Web 应用程序 但我不清楚用户是否可以 无意或故意 清除服务工作线程缓存 这可能会清除我的跟踪数据 当用户清除浏览数据 cookie 时 这会清除所有站点存储 包括 SW 缓存 cookie 本地存储 i
  • 将 XCTest 导入到现有项目中

    我添加了一个新目标作为 Cocoa Touch 单元测试包 名为目录 MyAppTests 并且实际框架未处于活动状态 它以红色突出显示 当我通过 构建阶段 选项卡技术中的 链接二进制文件与库 添加框架时 会添加一个新框架 而不是更新通过添
  • FLEX 中的重新调度事件

    在 FLEX 应用程序中 我试图 重新调度 自定义事件 IE 组件1执行dispatchEvnet event 组件2注册该事件的处理程序 该处理程序的唯一功能再次是dispatch event 最后 组件 3 监听来自组件 2 的事件 我
  • 了解 RecyclerView setHasFixedSize

    我有点难以理解setHasFixedSize 我知道它用于优化时的大小RecyclerView从文档来看 没有改变 但这意味着什么 在大多数常见情况下ListView几乎总是有固定的大小 什么情况下它不是固定大小 这是否意味着它在屏幕上占据
  • 如何更改Popup MenuButton弹窗的背景颜色?

    我想更改弹出菜单按钮窗口的背景颜色 我应该怎么办 我希望我能得到你的帮助 谢谢 当我改变容器的颜色时 有些角落不能改变颜色 new IconButton icon new Icon Icons search color Colors whi
  • 如何从fragment中listview的onitemclick事件中调用startactivity或调用intent?

    我有一个具有自己的布局的片段 在布局中 有一个列表视图 我附加了 onitemclick 侦听器 单击列表行时将启动 打开意图 不幸的是 我总是收到这个错误 从 Activity 上下文外部调用 startActivity 需要 FLAG
  • 如何查找影响特定列的存储过程列表?

    我正在研究这个大型数据库 其中 SP 中嵌入了很多业务知识 我知道 并且 SP 之间有很多链接 即一个存储过程调用另一个存储过程 我想找出更新特定列的存储过程列表 我该怎么做呢 使用 showplan All 中概述的用于存储过程的 SQL
  • D3.js:如何组合 2 个数据集以创建地图并在鼠标悬停时显示值?

    我想在 D3 js 中的地图上合并两个数据集 例如 第一个数据集 json 格式的空间数据 第二个数据集 csv 中区域的数据 gt 当您将鼠标悬停在地图上时 工具提示应显示一个句子 其中包含第二个数据集中的一些数据 我可以制作地图并显示包
  • 选择包含“foo”的属性的正确 XPath 是什么?

    给定这个 XML XPath 返回其所有元素prop属性包含Foo 前三个节点
  • Android:如何在 root 设备上获取帧缓冲区(屏幕截图)?

    我试过 process Runtime getRuntime exec su c cat dev graphics fb0 gt sdcard frame raw process waitFor 但它不起作用 我的设备已植根 我看到很多答案
  • 高枕无忧,初始化参数 - 如何访问?

    我想在我的 web xml 中有一些初始化参数 并稍后在应用程序中检索它们 我知道当我有一个普通的 servlet 时我可以做到这一点 然而 使用resteasy 我将HttpServletDispatcher配置为我的默认servlet
  • 如何将焦点添加到表格行?

    我有一个生成的表AngularJS 这是我的 HTML table class my table thead tr th Name th th Address th th Celphone th tr thead tbody tr td c
  • Pandas 计算最后 n 行中大于当前行的值

    如何获取最后n行中大于当前行的值的计数 假设我们有一个如下的数据框 col a 0 8 4 1 11 3 2 7 2 3 6 5 4 4 5 5 8 9 我正在尝试获取如下表 其中 n 3 col a col b 0 8 4 0 1 11
  • Woocommerce REST API 404 错误

    自从 woocommerce 发布了带有 REST API 功能的 2 1 版本后 我尝试使用它 我在 woocommerce 管理面板上激活了 API 但是当我尝试调用 curl 时 http www mydomain com wc ap
  • 依赖树实现

    对于那些使用 apt get 的人来说 您知道每次安装 卸载某些东西时 您都会收到通知 说明您需要 不再需要某些依赖项 我正在尝试理解其背后的理论 并可能实现我自己的版本 我做了一些谷歌搜索 想出了大部分耦合的东西 据我了解 耦合是两个相互
  • Ionic Uncaught(承诺):无效链接

    我可能有问题this nav push在离子 我已经完成了登录 注册页面 但是当我登录时 我收到此错误消息 我必须在 login ts 和例如 home ts 这是主页 中添加一些代码 运行时错误未捕获 承诺 无效链接 主页 错误 未捕获
  • 父窗口关闭时关闭所有子窗口

    我有一个可以打开多个窗口的网络应用程序 我遇到的问题是 当父窗口关闭 刷新时 子窗口保持打开状态 我尝试过使用onunload and onbeforeunload但它们都没有捕获窗口关闭事件 在 Chrome 和 Firefox 中 我有