/ / window.opener марний після перенаправлення у спливаючому вікні (JavaScript) - javascript, window

window.opener стає марним після переадресації в спливаючому вікні (JavaScript) - javascript, window

Я будую додаток, що включає аутентифікаціючерез сторонні сторони. Щоб процес не переспрямовував фактичну програму, я відкриваю нове вікно, яке потім робить аутентифікацію та після успіху повертається в головне вікно.

Однак це не відповідає тому, як було заплановано. Коли спливаюче вікно переспрямовується на сторонні і назад, window.opener отримує null. Можна ще закрити спливаюче вікно window.close() але мені також потрібно оновити зону входу в головне вікно, як це:

window.opener.check_auth_status();

Я дуже сподіваюся, що існує спосіб виправити це, напр. прив’язування функції до спливаючого вікна у головному вікні? Оновлення всієї сторінки було б вкрай непотрібним.

Один із способів - це встановити інтервал до головного вікна перевірити, чи спливаюче вікно закрите, але це здається настільки вигадливим.

Відповіді:

9 для відповіді № 1

У вас є кілька варіантів, які можуть працювати або не працювати в останніх версіях браузерів через оновлення безпеки

1) перевірте, чи закрито вікно від відкривача - не хитро, а насправді найбезпечніше

2) дайте назву відкривачу

window.name="myMainWindow";

а у спливаючому вікні (скрипт із домену SAME) - зазвичай не слід відкривати нове вікно чи змінювати вміст

var handle = window.open("","myMainWindow");
handle.check_auth_status();

3) використовуйте iFrame у спливаючому вікні, і коли ви хочете отримати доступ до відкривача, використовуйте top.opener