Могу ли я подписаться на событие загрузки открывающего окна? - PullRequest
0 голосов
/ 13 декабря 2011

В дочернем окне мне нужно подождать, пока открывающее окно перейдет в другой домен (или будет закрыто).В настоящее время я не использую события, но использую интервал для проверки окна открывания, пока либо окно открывания не станет пустым, либо я больше не смогу получить доступ к его местоположению (из-за междоменного ограничения).Я хочу попробовать использовать событие в открывшемся окне.

Вот как я открываю дочернее окно:

window.open("wait.html", "_popup", "");

Вот как я пытаюсь подписаться на событие вwait.html:

window.opener.addEventListener('load', waiting, false);
function waiting() {
    console.log("Waiting...");
}

Но обработчик событий не вызывается.Я работаю в Chrome, поэтому addEventListener должен работать здесь, верно?

Ответы [ 2 ]

2 голосов
/ 13 декабря 2011

Когда документ загружает весь javascript и события очищаются, это делается из соображений безопасности, и об этом не должно быть и речи.

Одним из способов достижения подобного поведения является подписка на событие unload.

1 голос
/ 13 декабря 2011

Один из способов сделать это - вызвать функцию у потомка:

var AWindow; 
function openChild() 
{ 
   AWindow = window.open("TestCallBack.html"); 
}; 

и в обработчике событий вашего родительского окна:

var myChildSays = AWindow.childCallBack('from parent');

и функция в дочернем окне:

function childCallBack(passstuff) 
{ 
  return "CHILD GOT:(" + passstuff + ")"; 
}; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...