window.opener имеет значение null на Android Chrome (но не в режиме инкогнито) - PullRequest
0 голосов
/ 04 июля 2018

Я открываю новое окно, чтобы завершить настройку Instagram следующим образом:

var newWindow = window.open(url, 'Instagram Login', 'scrollbars=yes, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);

где url - это просто oauth-путь для данного приложения. После аутентификации следующий код ищет функцию, которая была определена на стороне приложения для запуска обратного вызова:

if (window.opener && window.opener.foo) {
    window.opener.foo("photo:social:login:success", gon.social_profile);
}

Это работает безупречно как на настольном компьютере, так и на ios, но Android Chrome говорит мне, что window.opener равно нулю, что означает, что обратный вызов никогда не достигается.

Странная часть в том, что, пробуя точно такой же поток в окне инкогнито в Android Chrome, он работает без каких-либо проблем. window.opener указывает на исходное окно, и функция обратного вызова успешно срабатывает.

Я уже пытался использовать parent.window.opener, а также top.window.opener, поскольку код, открывающий всплывающее окно, находится внутри iframe, но, похоже, это не имеет значения. Есть ли причина, почему Android будет действовать здесь по-другому?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...