2

现在我有以下内容:

<%= submit_tag 'Save' ,{:onClick => "window.close()"} %>

这适用于关闭窗口。不幸的是,它在表单 POST 到服务器之前关闭了窗口。

该窗口是使用主页中的链接创建的:

function amenitiesPopup(){
  window.open("/amenities", "Swag", "status,width=600,height=800,resizable,scrollbars=yes","POS"); 
}

没有:onClick => "window.close()"按预期发布的表单。之后只需要关闭它。

谢谢

编辑:我的解决方案是让控制器返回一个字符串文字:

if (params[:search])
    ...
    render :text => '<body onload="window.close()"></body>'
end

这将跳过任何布局/视图项目,只呈现一个自动关闭的空主体

4

2 回答 2

3

刚回来

<body onload="window.close()">

从服务器,这样你的 POST 肯定会在窗口关闭之前通过。因此,不是从提交文档中关闭,而是关闭服务器作为回复收到的文档。此外,如果您想在之后关闭窗口,您可能会考虑发布到 iframe,而不是取决于您想要实现的目标。

于 2013-09-27T17:46:43.363 回答
1
function onSubmit(){
    $.ajax({
        //POST info and URL etc goes here
    }).done(function(){
        window.close();
    });
}

您需要指定 jquery ajax api 所需的所有参数(url、数据等)。

如果您在没有 ajax 的情况下提交,您将转到您提交的页面并且不再控制您的窗口,除非您控制目标页面,在这种情况下,您应该将 window.close 添加到目标页面的脚本中:

<script>
    window.close();
</script>
于 2013-09-27T17:44:45.597 回答