如何级联JavaScript卸载到子窗口
How to cascade JavaScript unloads to child windows?
我想卸载依赖的弹出窗口时,主窗口关闭。主窗口:
var dependentWindows = [];
function closeDependents(){
dependentWindows.forEach(function(dependent) {
dependent.close();
})
dependentWindows = [];
}
function addDependent(dependent){
if(dependentWindows.indexOf(dependent) < 0) {
dependentWindows.push(dependent);}
}
function removeDependent(dependent){
var position = dependentWindows.indexOf(dependent);
if(position > 0) {
dependentWindows.splice(position,1);}
}
Event.observe(window,"unload",closeDependents);
依赖的弹出窗口:
function addDependent(dependent){
window.opener.addDependent(dependent);
}
function removeDependent(dependent){
window.opener.removeDependent(dependent);
}
Event.observe(window, "load", (function() {addDependent(window);});
Event.observe(window, "unload", (function() {removeDependent(window);});
这些都不开火....?
我想在主窗口关闭时卸载相关的弹出窗口
一个简单和最简单的解决方案可能是在每个子窗口中包含一个小脚本,它将定期轮询以查看其opener
窗口是否仍然存活。
像这样:
setInterval(checkIfOrphaned, 2000);
function checkIfOrphaned() {
if (!window.opener || (window.opener == 'null') || (window.opener.closed)) {
window.close();
}
}
相关文章:
- 如何禁用窗口.当计时器超时时,打开卸载警报
- 在窗口中单击按钮完成之前,光标不会停止.请继续卸载
- 使用 javascript 创建的窗口在使用 window.close() 时不会在卸载之前触发
- 如何发出跨浏览器窗口卸载请求
- 如果未提交表单,则在卸载之前运行窗口功能
- 打开弹出窗口在卸载之前
- 弹出窗口卸载问题
- 仅在卸载未完成时触发触发器弹出窗口
- 窗口.在卸载之前不触发
- 如何卸载当前窗口
- 检测URL更改(不卸载窗口)
- 仅当窗口关闭时才在卸载前开火(包括工作示例)
- 如何在用javascript卸载父窗口时关闭浏览器中的所有子窗口
- 仅在关闭选项卡/窗口时触发页面卸载事件
- 如何在窗口调整大小后卸载jQuery插件
- 在Firefox中卸载窗口
- Jasmine单元测试窗口.卸载前
- 登录弹出窗口几分钟后,在wordpress中卸载用户
- 如何在卸载窗口之前调用一个函数
- 将焦点设置在卸载窗口上