【发布时间】:2012-12-19 14:27:54
【问题描述】:
我有一个页面 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 的引用。 有谁知道解决这个问题的方法吗?
【问题讨论】:
-
页面 C 与页面 A 是否在同一个域中?如果没有,则需要使用 postMessage 代替。
标签: javascript asp.net popup dom-events custom-events