如果我从某个页面打开一个弹出窗口,有没有办法可以从另一个页面关闭该弹出窗口?
Page1->创建并打开弹出窗口。
Page2->关闭弹出窗口。
答案 0 :(得分:2)
由于您无法在导航中保留对弹出窗口的引用,因此您无法执行此操作。但是,如果您使用pushState
更改父窗口的网址而不实际导航,则可以执行此操作。只需使用close()
方法,您就可以关闭该弹出窗口
其他选项是使用服务器端脚本将关闭信号发送到弹出窗口
答案 1 :(得分:1)
我认为任何编码良好的浏览器都应该在沙盒环境中运行每个页面,因此一个页面甚至不应该知道其他页面存在或正在浏览,更不用说它们对DOM或它们运行的javascript做了什么。
因此,允许来自两个不同网页(或在浏览器中加载两次的同一页面)进行通信的任何解决方案都必须通过外部机制进行。如果同一页面在同一浏览器中加载了两次,则应共享localStorage
,这样您就可以将其用作发送邮件的方式。
如果没有,您始终可以依靠外部Web服务来执行此操作。打开弹出窗口的页面必须实现一个轮询服务以查看它是否应该关闭它,并且试图关闭弹出窗口的页面必须发出一个AJAX调用请求它到服务器,并等待另一个页面拉出结果
它不像一行javascript那么容易,但如果你真的想要这个功能,你可以实现它。