打开弹出窗口,点击链接,在父窗口中打开,关闭弹出窗口?

4

我需要帮助。我的页面想要做的是打开一个弹出窗口,我使用以下代码:

<a class="txt-button" onclick="javascript:void window.open('http://mypage.com/1/index.html','','width=700,height=500,resizable=false,left=0,top=0');return false;">Buy Now</a>

当弹出窗口中的链接被点击时,我希望它在主窗口中打开并关闭弹出窗口。 我尝试了很多方法,但都不能使其正常工作:-(

1
请注意:确保在弹出窗口位置使用相对URL。否则,如果域名匹配(例如mypage.comwww.mypage.com),您将无法访问父窗口。 - N Rohler
2个回答

8
我认为您可以使用 window.opener
window.opener.location.href=x

6
要从弹出窗口访问主要的opener窗口,请使用window.opener对象。您可以访问任何一个opener属性,甚至像这样调用函数(只要域名匹配,如@N Rohler在您问题的评论中指出的),例如要导航使用window.opener.location.href。然后,像这样使用window.close();关闭弹出窗口:
<a href="JavaScript:void(0);" onclick="openInParent('http://example.com/');">
  click me
</a>

<script>
  function openInParent(url) {
    window.opener.location.href = url;
    window.close();
  }
</script>

我已经做到了这一步,但它创建了一个新的选项卡,而不是关闭弹出窗口(子窗口)。 - Adam
我正在学习中,但现在似乎已经可以了。谢谢! - Adam
我正在使用Chrome,在相同的域名下打开(window.open('/')),但仍然出现跨域错误。 - nnyby

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接