我有一个页面 A 会打开一个到 B 的弹出窗口。页面 B 在完成一些工作后,总是重定向到弹出窗口中的另一个页面 C。然后页面 C 调度一个事件来向页面 A 发送一些数据,但是页面 A 没有引用页面 C 来注册事件处理程序。我尝试的代码有点像这样:
页面A:
function handler(e) {
alert(e.detail.message);
}
var popup = window.open('/PageB.aspx');
popup.addEventListener("dispatch", handler, false);
页面B:
location.href = "PageC.aspx";
页面C:
var event = new CustomEvent(
"dispatch",
{
detail: {
message: "Test"
},
bubbles: true,
cancelable: true
}
);
window.dispatchEvent(event);
但这不起作用,因为当我重定向时,PageA 错过了对 PageC 的引用。有谁知道解决这个问题的方法?