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 будет действовать по-другому здесь?