Bへのポップアップを開くページAがあります。ページ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 への参照を見逃すため、これは機能しません。これを修正する方法を知っている人はいますか?