问题
如何使用JS关闭弹出窗口,从iframe打开,然后重新加载iframe(不是整页)
已完成的工作
我在iframe中打开了一个弹出窗口。 一旦这个弹出窗口到达某个页面,我希望这个弹出窗口重新加载IFRAME,然后关闭弹出窗口。
我现在拥有的
<script type="text/javascript">
window.opener.parent.location.href="'.urldecode($_GET['return_url']).'";
window.close();
</script>
现在发生了什么
弹出窗口成功关闭。整个页面将发送到iframe网址,而不是仅将其发送到iframe ...
编辑: 我尝试了什么:
window.opener.location.href="'.urldecode($_GET['return_url']).'";
但是,它没有超过这一行,因为iframe或页面没有重新加载,并且它没有关闭弹出窗口。在Chrome中,窗口关闭,但iframe /页面不会重新加载
原来我访问的页面属于不同的域(属于我们网站的不同域)。但是,为什么这会起作用
window.opener.parent.location.href="'.urldecode($_GET['return_url']).'";
而不是
window.opener.location.href="'.urldecode($_GET['return_url']).'";
??????
答案 0 :(得分:2)
我们在这里分解您的代码:
window.opener.parent.location.href="'.urldecode($_GET['return_url']).'";
window
表示当前弹出窗口的window
对象。好到目前为止。.opener
表示打开此窗口的窗口对象,它将是您要重新加载的iframe。还是不错。.parent
表示iframe的父级,即整个窗口。这是你的问题。应该是:
window.opener.location.href="'.urldecode($_GET['return_url']).'";