4

我正在开发出于某种目的需要打开新浏览器窗口的 Web 应用程序。我正在为此使用 JavaScript window.open() 方法。一旦使用此方法创建子窗口,我正在使用 window.focus() 方法在两者之间导航父子窗口。这适用于所有桌面和安卓浏览器。

代码:

<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();

现在的问题是,当我在移动 safari(ipod touch)上使用它时,它会显示警报消息“此站点正在尝试打开一个弹出窗口”,并带有“允许”和“阻止”选项。当我单击允许时,它会打开新窗口,但使用 window.focus 的导航不起作用。我认为这是因为 safari 浏览器将其作为弹出窗口而不是完整的浏览器窗口,因此它在创建时无法返回浏览器对象(myWindow )。

在同一个应用程序中,我在单击按钮上使用相同的代码,它在 ipod 上运行良好,没有此类警报消息,但它不适用于锚标记。

任何人都可以指出我应该怎么做才能使它工作,在此先感谢。阿尼尔。

4

1 回答 1

0

您可以查看这些GIT问题- 6617、5663、6864

您可以尝试将此弹出窗口作为警报处理。您可以尝试使用以下代码片段 -

// SWITCH TO ALERT    
Alert alert_obj = webDriver.switchTo().alert();
// ACCPET IT
alertObj.accept();
于 2018-08-07T07:36:46.220 回答