JavaScript:从iframe关闭窗口
问题描述:
我有一个页面P1从站点S1加载,其中包含一个iframe。该iframe从另一个站点S2加载页面P2。在某个时候,P2想要关闭浏览器窗口,其中包含从S1加载的P1。当然,由于P2是从另一个站点加载的,因此不能只执行parent.close()。JavaScript:从iframe关闭窗口
我可以完全控制P1和P2,所以我可以根据需要向P1和P2添加JavaScript代码。 关于如何解决这个问题的建议?
答
恐怕是不可能的。由于安全问题,严格禁止加载到不同站点的iframe中的JavaScript,以及它所呈现的JavaScript。
然而,如果在iframe指向同一个网站,你可以得到它喜欢:
<iframe name = "frame1" src = "http://yoursite">
</iframe>
<script type = "text/javascript">
alert(window.frames["frame1"].document);
</script>
答
如果它们来自同一个域,您可以修改安全限制,允许子之间修改域。
set document.domain =“domain.com”; //在这两个页面上,他们被允许修改彼此。
它可能会工作,只是将它们设置为一个虚假的域名,还没有尝试过,或只是简单地“.com”什么的。
答
您可以使用Flash来执行此操作。通过带有_top目标的URLRequest将用户发送到您控制的新*页面,并让该页面包含执行window.close()的JavaScript。
document.domain只允许您从当前域“向上移动”。例如。从“sub.domain.example.com”或“sub.example.com”改为“example.com”。但是,您不能将其设置为'.com'。此外,您只能设置一次该值。 – Josh 2008-11-13 13:42:03