在子窗口中,我需要等待开启窗口导航到另一个域(或要关闭)。我目前没有使用事件,但使用间隔检查开启窗口,直到开启窗口为空或我无法再访问其位置(由于跨域限制)。我想尝试在开启窗口中使用一个事件。
这是我打开子窗口的方式:
window.open("wait.html", "_popup", "");
这就是我尝试在wait.html中订阅该事件的方式:
window.opener.addEventListener('load', waiting, false);
function waiting() {
console.log("Waiting...");
}
但是没有调用事件处理程序。我在Chrome上工作,所以addEventListener应该在这里工作吗?
答案 0 :(得分:2)
当文档加载所有javascript并且事件被清除时,这是出于安全原因而且不应该存在。
实现类似行为的一种方法是订阅卸载事件。
答案 1 :(得分:1)
这样做的一种方法是在孩子中调用一个函数:
var AWindow;
function openChild()
{
AWindow = window.open("TestCallBack.html");
};
并在您的父窗口事件处理程序中:
var myChildSays = AWindow.childCallBack('from parent');
和子窗口中的一个函数:
function childCallBack(passstuff)
{
return "CHILD GOT:(" + passstuff + ")";
};