【问题标题】:Open popup, click link, open in parent window, close popup?打开弹出窗口,单击链接,在父窗口中打开,关闭弹出窗口?
【发布时间】:2013-01-31 13:49:57
【问题描述】:

我需要帮助。我想从我的页面上做的是打开一个我使用它的弹出窗口:

<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>

当点击弹出窗口上的链接时,我希望它在主窗口中打开并关闭弹出窗口。

我已经尝试了很多东西,但无法让它工作:-(

【问题讨论】:

  • 注意:请务必使用您的弹出位置的相对 URL。否则,如果域域匹配(例如,mypage.comwww.mypage.com),您将无法访问父窗口。

标签: javascript popup


【解决方案1】:

我觉得你可以用window.opener

window.opener.location.href=x

【讨论】:

    【解决方案2】:

    从弹出窗口访问opener主窗口,请使用window.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>
    

    【讨论】:

    • 我已经做到了,但它创建了一个新标签,而不是关闭弹出窗口(子)
    • 我边走边学,但现在看来可以了,谢谢!
    • 我使用的是 chrome,在同一个域 (window.open('/')) 上打开,但仍然出现跨域错误。