0

如果我从一个页面打开一个弹出窗口,有没有办法可以从另一个页面关闭该弹出窗口?

Page1-> 创建并打开弹出窗口。

Page2->关闭弹出窗口。

4

2 回答 2

2

由于您无法在导航时保留对弹出窗口的引用,因此您不能这样做。但是,如果您使用pushState更改父窗口的 url 并且不实际导航,则可以这样做。只需使用close()方法即可关闭该弹出窗口

其他选项是使用服务器端脚本向您的弹出窗口发送关闭信号

于 2013-01-18T01:26:17.810 回答
1

我认为任何编码良好的浏览器都应该在沙盒环境中运行每个页面,因此一个页面甚至不应该知道其他页面存在或正在被浏览,更不用说它们对 DOM 或它们运行的​​ javascript 做了什么。

因此,任何允许从两个不同网页(或在浏览器中加载两次相同的页面)进行通信的解决方案都必须通过外部机制进行。如果同一个页面在同一个浏览器中加载了两次,他们应该共享他们的localStorage,所以你可以用它作为发送消息的一种方式。

如果没有,您始终可以依赖外部 Web 服务来执行此操作。打开弹出窗口的页面必须实现轮询服务来查看它是否应该关闭它,并且试图关闭弹出窗口的页面必须向服务器发出请求它的 AJAX 调用,并等待其他页面拉结果。

它不像一行javascript那么简单,但如果你真的想要这个功能,你可以实现它。

于 2013-01-18T01:27:23.993 回答