【问题标题】:rails open child window and open parent windowrails打开子窗口并打开父窗口
【发布时间】:2011-06-20 12:52:55
【问题描述】:

单击提交按钮时,我想打开一个子窗口并将父窗口重定向到另一个位置。

为此,我使用了打开子窗口的代码:

<button class="btnBg" onclick="window.open('<%= url_for(:action=>"index") %>', '', 'toolbars=0')">

您能告诉我如何将父窗口重定向到所需位置吗?

【问题讨论】:

    标签: javascript ruby-on-rails


    【解决方案1】:

    最简单的方法是在您的 JavaScript 中为 window.location 分配一些东西(但请确保在打开新窗口后这样做):

    <script type="text/javascript">
        function open_and_redirect() {
            window.open('<%= url_for(:action=>"index") %>', '', 'toolbars=0');
            window.location = 'the new location for the parent window';
        }
    </script>
    <button class="btnBg" onclick="open_and_redirect()">
    

    不过,您不需要使用单独的函数,我这样做只是为了使其更易于阅读。

    【讨论】:

    • 非常感谢,我还有一个问题,是否可以通过 ruby​​ 代码关闭孩子,即。在子窗口中单击完成 btn 后,它将重定向到一个动作,并从该动作内部我想关闭子窗口
    • @lamrin:不,Ruby 代码在你的服务器上运行,但你想在客户端做一些事情,你必须使用 JavaScript。
    • 这是我的代码 " $('#finishBtn').click(function(){ var target = '@score) %>'; $(' #class_form').attr('action', target); $('#class_form').submit(); }); "在这里,当我单击完成按钮时,它将重定向到名为 "calculation" 的操作,以及什么我需要的是,重定向到计算路径后,子窗口应该关闭..请告诉我该怎么做,谢谢
    • @lamrin:您可以在表单返回的 HTML 中包含 &lt;script type="text/javascript"&gt;window.close();&lt;/script&gt; 位 JavaScript,表单的返回 HTML 应该转到新窗口,window.close() 将关闭它。
    【解决方案2】:

    在您的子窗口中,通过事件或计时器触发以下代码:

    opener.location = "http://example.com" 
    window.close();  
    

    【讨论】:

    • 非常感谢,我还有一个问题,是否可以通过 ruby​​ 代码关闭孩子,即。在子窗口中单击完成 btn 后,它将重定向到一个动作,并从该动作内部我想关闭子窗口
    【解决方案3】:

    可以通过两种方式完成:

    1. 附加您要重定向到 onclick 事件的 url,如其他帖子所示。
    2. 使用弹窗设置父窗口的位置window.parent.location = 'some url'

    【讨论】:

    • 非常感谢,我还有一个问题,是否可以通过 ruby​​ 代码关闭孩子,即。在子窗口中单击完成 btn 后,它将重定向到一个动作,并从该动作内部我想关闭子窗口
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    • 2013-09-18
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    相关资源
    最近更新 更多