查找之前由 window.open 打开的窗口

新手上路,请多包涵

我们有以下情况,从单个域运行:

页面 A 使用 window.open() 打开一个命名窗口(弹出播放器)。 window.open() 为页面 A 提供对窗口的引用。

用户现在重新加载页面 A。对命名窗口的引用丢失了。使用 window.open() 来“查找”窗口具有重新加载它的不幸副作用(不可取)。还有其他方法可以引用此窗口吗?

原文由 spender 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 669
2 个回答

尝试这个:

 var playerUrl = 'http://my.player...';
var popupPlayer= window.open('', 'popupPlayer', 'width=150,height=100') ;
if(popupPlayer.location.href == 'about:blank' ){
    popupPlayer.location = playerUrl ;
}
popupPlayer.focus();

它将打开一个具有唯一名称的空白窗口。由于 url 为空,因此不会重新加载窗口的内容。

原文由 awe 发布,翻译遵循 CC BY-SA 3.0 许可协议

AFAIK,不,没有..

一种肮脏但我猜它会起作用的 hack 是使用 window.opener 从弹出窗口中定期重置父窗口上的引用,代码如下:


    设置间隔(函数(){
        如果(window.opener){
            window.opener.document.myPopupWindow = 窗口
        }
    }, 100)

在父窗口中,您将能够访问 document.myPopupWindow,即使在重新加载之后(好吧,在重新加载后 100 毫秒)。这应该跨浏览器工作。

原文由 Alexander Malfait 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题