window.opener имеет значение null на Android Chrome (но не в режиме инкогнито)

Я открываю новое окно для завершения 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 будет действовать по-другому здесь?

0 ответов

Другие вопросы по тегам