Safari和window.open() - 如何使用它而不是获得焦点?

时间:2014-10-21 14:20:57

标签: javascript browser safari cross-browser

我的订单输入网站正在增强,以拥有主/子窗口架构。子窗口将用于"顺便说一下......"搜索和主窗口是进行编辑的地方。 Master窗口会定期向Child窗口显示内容。如果它有一个孩子的句柄,例如来自window.open()的句柄,那么这很容易。

因为用户可能刷新主窗口(F5),页面必须恢复其子列表。除了使用window.open()浏览可能的子窗口名称列表之外,我不知道这样做的方法。在我的运行Windows的计算机上使用Chrome / Firefox / MSIE浏览器测试这个想法一切正常。

然而,我没有获得良好的Safari结果。当在各种Mac OS / Safari版本上运行时,调用window.open()总是会将该窗口带到前台。对我而言,这是违约行为。 运行window.open()然后window.blur()由于不需要的窗口的闪光显示而不可接受。

问题:有没有办法调用window.open()(而不是window.blur()),同时总是抑制"带到前台"行为?

问题:有没有办法使用window.open()获取窗口句柄?

谢谢, 杰罗姆。

1 个答案:

答案 0 :(得分:0)

window.opener将是你问题的答案。但IE不支持window.opener。 像下面这样的东西会有所帮助。

if ($.browser.safari)
 std = window.opener("", "childwindowname");
else
 std = window.open("", "childwindowname");