Событие Javascript отправлено во всплывающем окне, которое было перенаправлено
У меня есть страница 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";
PageC:
var event = new CustomEvent(
"dispatch",
{
detail: {
message: "Test"
},
bubbles: true,
cancelable: true
}
);
window.dispatchEvent(event);
Но это не работает, потому что когда я перенаправляю, PageA пропускает ссылку на PageC. Кто-нибудь знает способ это исправить? Большое спасибо!
1 ответ
Если страница C находится в том же домене, что и страница A, попробуйте
window.opener.dispatchEvent(event);
Если нет, вам нужно вместо этого использовать postMessage, что означает, что вы должны сериализовать ваше событие в строку и прослушивать сообщения на странице A.