现在我有以下内容:
<%= 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()"
表单POST按预期方式。只需要事后关闭它。
由于
编辑:我的解决方案是让控制器返回一个字符串文字:
if (params[:search])
...
render :text => '<body onload="window.close()"></body>'
end
这将跳过任何布局/视图项目,只渲染一个自动关闭的空体
答案 0 :(得分:3)
回来
<body onload="window.close()">
,这样你的POST肯定会在窗口关闭之前通过。因此,您不必关闭提交文档,而是关闭服务器收到的文档作为回复。此外,如果您想在之后关闭窗口,可以考虑发布到iframe,具体取决于您希望实现的目标。
答案 1 :(得分:1)
function onSubmit(){
$.ajax({
//POST info and URL etc goes here
}).done(function(){
window.close();
});
}
您需要指定jquery ajax api(url,data等)所需的所有参数。
如果您在没有ajax的情况下提交,您将转到您提交的页面并且将无法再控制您的窗口,除非您控制目标页面,在这种情况下您应该将window.close添加到您的脚本中目的地页面:
<script>
window.close();
</script>