проблема всплывающего окна в мобильном сафари - PullRequest
4 голосов
/ 11 октября 2011

Я работаю над веб-приложением, для которого нужно открыть новое окно браузера. Я использую метод JavaScript window.open () для this.once. Дочернее окно создано с использованием этого метода. Я использую метод window.focus (). для перемещения между родительским и дочерним окном. Это прекрасно работает на всех десктопах и браузерах Android.

код:

<a href="javascript:void(0);" onclick="openWin('url')">

чтобы открыть окно:

function openWin(url){
    myWindow = window.open(url,"myWindow");   
    myWindow.opener = window;
    myWindow.focus();
}

чтобы переключиться на родителя с дочернего

window.opener.focus();

снова переключиться на ребенка

myWindow.focus();

Теперь проблема в том, что когда я использую его в мобильном сафари (ipod touch), отображается предупреждение «Этот сайт пытается открыть всплывающее окно» с параметрами «Разрешить» и «Блокировать». когда я нажимаю на разрешить, он открывает новое окно, но навигация с использованием window.focus не работает. Я думаю, это потому, что браузер Safari принимает его как всплывающее окно, а не как полное окно браузера, и поэтому он не может возвращать объект браузера при создании ).

в этом же приложении я использую тот же код при нажатии на кнопку, и он очень хорошо работает на ipod без такого предупреждающего сообщения, но не работает с тегом привязки.

Может кто-нибудь указать мне, что я должен сделать, чтобы это работало, спасибо заранее. Анил.

1 Ответ

0 голосов
/ 07 августа 2018

Вы можете просмотреть эти проблемы GIT - 6617 , 5663 , 6864

Вы можете попытаться обработать это всплывающее окно как предупреждение.Вы можете попробовать использовать следующий фрагмент кода -

// SWITCH TO ALERT    
Alert alert_obj = webDriver.switchTo().alert();
// ACCPET IT
alertObj.accept();
...