JavaScript:从iframe关闭窗口

JavaScript:从iframe关闭窗口,javascript,iframe,Javascript,Iframe,我有一个页面P1从站点S1加载,其中包含一个iframe。该iframe从另一个站点S2加载页面P2。在某个时刻,P2希望关闭浏览器窗口,其中包含从S1加载的P1。当然,由于P2是从另一个站点加载的,所以它不能只执行parent.close() 我完全控制P1和P2,所以我可以根据需要向P1和P2添加JavaScript代码。 关于如何解决这个问题的建议?恐怕不可能。由于安全问题,严格禁止将iframe中的JavaScript加载到另一个站点,然后将其呈现到另一个站点 但是,如果iframe指向

我有一个页面P1从站点S1加载,其中包含一个iframe。该iframe从另一个站点S2加载页面P2。在某个时刻,P2希望关闭浏览器窗口,其中包含从S1加载的P1。当然,由于P2是从另一个站点加载的,所以它不能只执行parent.close()

我完全控制P1和P2,所以我可以根据需要向P1和P2添加JavaScript代码。
关于如何解决这个问题的建议?

恐怕不可能。由于安全问题,严格禁止将iframe中的JavaScript加载到另一个站点,然后将其呈现到另一个站点

但是,如果iframe指向同一个站点,您可以像这样访问它:

<iframe name = "frame1" src = "http://yoursite">
</iframe>

<script type = "text/javascript">
    alert(window.frames["frame1"].document);
</script>

警报(window.frames[“frame1”].document);

如果它们来自同一个域,您可以修改安全限制以允许在子域之间进行修改

设置document.domain=“domain.com”//在这两个页面上,它们可以相互修改


只需将它们设置为一个伪造的域就行了,没有尝试过,或者只是简单地使用“.com”之类的东西。

看起来在iFrame之间使用了跨域JavaScript。

您可以使用Flash来实现这一点。将用户发送到一个新的顶级页面,该页面由一个带有_toptarget的URLRequest控制,并使该页面包含执行window.close()的javascript。

document.domain仅允许您从当前域“向上移动”。例如,从“sub.domain.example.com”或“sub.example.com”到“example.com”。但是,您不能将其设置为“.com”。此外,只能设置一次该值。