2013-04-05 46 views
1

我有两页,页面为“a”,页面为“b”。尝试从新页面聚焦已打开的弹出窗口

Page'a”生成由

function loadWindow(){ 
var params = 'status = 0, height = 300, width = 480, resizable = 0'; 
if(isTouchDevice()){ 
    params = '' 
} 
w = window.open('/audio/audioplayer.php?id='+audioId, 'audioplayer', params); 
w.document.close(); 
} 

然后访问者进入网页B(弹出窗口仍处于打开状态)。我想第B按钮一个js弹出窗口,按下时,它带来的焦点以将其在页面创建的弹出窗口。

我试图寻找答案还没有什么工作。我知道我可以把焦点与

window.open('', 'audioplayer', ''); 

w.focus(); 

,但问题是我无法弄清楚如何从“A”页

+0

为什么'var w = window.open('','audioplayer',''); w.focus();'工作?事实上,你使用相同的第二个参数(窗口的名称)意味着你应该能够在弹出的方式抓住一个句柄 – Ian 2013-04-05 17:03:41

+0

它是如何在加载新页面时保持弹出窗口打开? – isherwood 2013-04-05 17:05:13

+0

@isherwood你是什么意思?如果用'window.open'打开一个弹出窗口,然后在几秒钟内导航到另一个页面,弹出窗口保持打开状态。 – Ian 2013-04-05 17:06:07

回答

0

您不能访问其他窗口引用弹出,因为你的参考,当你去到网页B死亡。出于安全原因,大多数浏览器都不会允许这样做。如果这是可能的任何页面访问所有浏览器选项卡。

你可以测试这个。通过打开弹出窗口,然后在其中执行window.opener。这将返回页面a。但是当你从页面a浏览页面b时。弹出窗口的开启器属性将为空。

围绕的工作将动态地将页面b加载到页面a中。这样窗口和参考将被保留。

+0

嗯,这就是我所假设的,希望我错了... 是他们这样的方式来保存cookie中的引用或东西? – user1948626 2013-04-05 19:23:34

+0

不是我所知道的。你可以将它转换为json并重新创建一个像它的对象。但绝不是同一个对象 - 因为它没有引用就死了。哪些不会引用旧窗口。对不起,我认为iframe或动态加载页面b是您的最佳选择。 – 2013-04-05 19:49:13

相关问题