Как отследить загрузку popup окна, которое было открыто через window.open()?
У меня есть web-страница что-то типо парсера. Она очень простая: всего лишь textarea и две кнопки. В textarea записываются некоторые номера из которых потом, при нажатии на одну из кнопок формируются ссылки. Далее эти ссылки вставляются во внутрь window.open() и открывается соответствующее окно, а уже из этого окна, с помощью расширения tampermonkey (расширение, которое позволяет запускать пользовательские скрипты на сайтах) собираются нужные данные и отправляются в бд. Код открытия страниц:
let popup;
const openPage = (i) => {
let iter = i;
const links = createlinks(); // получится массив ссылок
if(iter === links.length){
window.open('./excel.php');
}
if(iter >= links.length){
return;
}
let waitPage = new Promise(function(resolve, reject){
popup = window.open(links[iter]);
setTimeout(function(){
iter++;
resolve(iter);
}, 5000);
});
waitPage.then(res => {
popup.close();
openPage(iter); // Рекурсия, так как номеров в textarea лежит много
});
}
Источник: Stack Overflow на русском