我可以订阅openwindow的加载事件吗?

Can I subscribe to the opener window's load event?

本文关键字:事件 加载 openwindow 我可以      更新时间:2023-09-26

在子窗口中,我需要等待打开器窗口导航到另一个域(或被关闭)。我目前不使用事件,而是使用间隔来检查打开器窗口,直到打开器窗口为空,或者我不能再访问其位置(由于跨域限制)。我想尝试在打开器窗口中使用事件。

下面是我打开子窗口的方法:

window.open("wait.html", "_popup", "");

这是我在wait.html:

中订阅事件的方式
window.opener.addEventListener('load', waiting, false);
function waiting() {
    console.log("Waiting...");
}

但是没有调用事件处理程序。我在Chrome工作,所以addEventListener应该在这里工作对吗?

当一个文档加载所有javascript和事件被清除时,这是出于安全原因,不应该有这样的情况。

实现类似行为的一种方法是订阅卸载事件。

一种方法是在子元素中调用函数:

var AWindow; 
function openChild() 
{ 
   AWindow = window.open("TestCallBack.html"); 
}; 

和在父窗口事件处理程序中:

var myChildSays = AWindow.childCallBack('from parent');

和子窗口中的函数:

function childCallBack(passstuff) 
{ 
  return "CHILD GOT:(" + passstuff + ")"; 
};