Из-за того, как работают некоторые из наших страниц, JS может быть введена на страницу в любой момент, и иногда это JS закрывает текущее окно. Проблема в том, что мне нужно подключить прослушиватель событий к onunload окна, чтобы значение могло быть возвращено из окна на родительскую страницу. Но поскольку окно закрытия script может быть введено в любую точку, я не могу привязать это событие к onload из-за того, как он работает, поэтому я надеялся использовать DOMContentLoaded, поскольку это событие будет срабатывать до того, как будет введено script.
Однако в моих тестах я не могу ничего привязать к DOMContentLoaded на родительской странице, где создается новое окно.
Вот что я сейчас работаю с: Plunker
Нам нужно только это, чтобы работать в Chrome на данный момент.
Наш текущий метод работы работает так (псевдокод):
onButtonClick = function(){
win = window.open(...);
win.onload = function(){
win.onunload = function(){
//Bind some function that will get the window "return value" and pass it to the parent page
//This will never happen if the window closes itself before the page is done loading
};
};
};
Можно ли использовать DOMContentLoaded для выполнения того, что я хочу? Если да, как я правильно прикрепляю его к окну?
Примечание. Я не могу привязать событие onunload непосредственно к окну после его создания. Кажется, он дважды запускает событие onunload (один раз, когда открывается окно и один раз, когда он закрывается). Это можно увидеть, если вы используете функцию "bindOnCreate" в моем примере.