Чтобы воспроизвести, создайте два отдельных веб-сайта, один из которых является Родителем (открывающий), а другой - Дочерним (открытый).Эта проблема наблюдается только на Edge для iOS (Android работает правильно).
Родительский сайт должен иметь возможность выполнять следующее:
window.open(<URL_TO_CHILD_SITE>, 'Child Window');
Дочерний сайт должен иметь возможность alert
следующего, когда он будет готов:
const windowOpenerIsPresent = window.opener !== undefined && window.opener !== null;
alert(`Child window.opener isPresent?: ${windowOpenerIsPresent}`);
Несмотря на то, что условие windowOpenerIsPresent
учитывает window.opener !== undefined
, было замечено, что window.opener
всегда null
.
Обычный вариант использования для ссылки window.opener
- это когда пользователь пытается пройти аутентификацию на одном сайте через другой (например, при входе на сайт через Facebook или Google).Следующие несколько веб-сайтов не проходят проверку подлинности через Facebook и зависают в открывшемся окне входа в систему Facebook, предполагая, что проблема вызвана window.opener
, равным null
в Edge для iOS: Spotify, Yelp, Quora, eBay, Etsy, Kickstarter.
Кто-нибудь еще испытал это и нашел успешное решение?