Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试从新页面聚焦已打开的弹出窗口_Javascript_Popup - Fatal编程技术网

Javascript 尝试从新页面聚焦已打开的弹出窗口

Javascript 尝试从新页面聚焦已打开的弹出窗口,javascript,popup,Javascript,Popup,我有两页,第一页和第二页 页面“a”通过以下方式生成js弹出窗口 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.docume

我有两页,第一页和第二页

页面“a”通过以下方式生成js弹出窗口

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页上有一个按钮,当按下按钮时,它会将焦点转到A页上创建的弹出窗口

我已经试着寻找答案,但是没有任何效果。我知道我可以用它来集中注意力

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


但问题是我不知道如何引用“a”页的弹出窗口,您无法访问另一个窗口,因为当您转到b页时,您的引用将消失。出于安全原因,大多数浏览器不允许这样做。如果可以,任何页面都可以访问您的所有浏览器选项卡

您可以对此进行测试。通过打开弹出窗口,然后在其中执行window.opener。这将返回页面a。但当您从页面a浏览到页面b时,弹出窗口的opener属性将为null


一个解决办法是将b页动态加载到A页。这样,窗口和引用将被保留。

为什么不
var w=window.open(“”,'audioplayer',“”);w.focus();
work?使用相同的第二个参数(窗口名称)意味着你应该能够抓住弹出窗口上的一个手柄,这样你如何在加载新页面时保持弹出窗口打开?@isherwood你是什么意思?如果你用
窗口打开弹出窗口。打开
,然后在几秒钟内导航到另一个页面,弹出窗口保持打开。好的。我想我从来没有见过这种情况。嗯,这是真的这就是我的假设,希望我错了…他们是这样一种将引用保存在cookie或其他东西中的方法吗?我不知道。你可以将其转换为json并重新创建一个类似的对象。但绝不是同一个对象-因为它没有引用,所以它是死的。这将不会引用旧窗口。对不起,我认为是iframe或dynamicly加载页面b是您的最佳选择。
w.focus();