2013-01-18 150 views

回答

2

由于您无法在导航上保留对您的弹出窗口的引用,因此您无法做到这一点。但是,如果您使用pushState来更改父窗口的URL并且实际上没有导航,那么可以这样做。只需简单地使用close()方法,你可以关闭

另一种选择是使用服务器端脚本给你弹出窗口

+0

感谢您的回应。我在这篇文章中试图解释我的困境,但没有收到任何答案。这是一个罗嗦和混乱。真的很难形容我的情况。 http://stackoverflow.com/questions/14369922/opening-javascript-popup-from-multiple-windows-does-not-return-values-to-correct – hanesjw

1

发送关闭信号,我认为任何良好的编码器应在运行的每个页面弹出窗口沙箱环境,所以一个页面甚至不应该意识到其他页面存在或正在浏览,更不用说他们对DOM或他们运行的JavaScript做了什么。

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

如果没有,您可以始终依靠外部Web服务来执行此操作。打开弹出窗口的页面必须实现轮询服务以查看它是否应该关闭它,并且尝试关闭弹出窗口的页面必须进行AJAX调用,才能将请求发送到服务器,并等待另一个页面拉动结果。

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