我正在开发出于某种目的需要打开新浏览器窗口的 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 上运行良好,没有此类警报消息,但它不适用于锚标记。
任何人都可以指出我应该怎么做才能使它工作,在此先感谢。阿尼尔。