移动Safari浏览器中的弹出窗口问题

4
我正在开发一个网页应用程序,需要打开新的浏览器窗口来完成某些任务。我使用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上运行良好,并且没有此类警告消息,但在锚点标记上却不能正常工作。
有人可以指点我应该做什么才能使它工作,先谢谢了。 Anil。

如果您没有准确的答案或时间在iPod上进行测试,您可以在这里提出任何建议,我会尝试并检查它是否有效。 - Anil Shahu
嗨@Anil,这是一个非常老的问题,但你有没有找到解决办法?我的情况有点类似。 - salsbury
嘿,大家好,这个问题有解决办法吗?因为我也遇到了同样的问题。 - Deepak saini
1个回答

0

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

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接