我有JSP,我使用javascript提交表单。它是一个弹出窗口,因此必须关闭提交弹出窗口。我使用了以下代码:
document.forms["formname"].submit();
window.close();
问题是 - 表单成功提交但窗口没有关闭。 它在IE中运行良好。
答案 0 :(得分:1)
我怀疑它是如何在IE中工作的。 在您提交表单并将控件返回给浏览器之后,Javascript没有任何控制权。提交表单后,您应该使用其他机制来关闭窗口。
答案 1 :(得分:0)
不要从要关闭的窗口上下文中运行的脚本关闭窗口,而是尝试从打开它的窗口的上下文中关闭它。例如:
var popup;
function pop() {
popup = window.open('foo', 'mypopup', 'menubar=no,location=no,resizable=no,scrollbars=no,status=no');
console.log(popup);
}
function unpop() {
popup.close(); // close the popup
}
这适用于Firefox。您可以实时测试here。
答案 2 :(得分:0)
正如您所发现的,一旦您提交表单,您就已将控制权交给浏览器,并且无法保证该页面中的任何其他javascript都会执行。它可能只是立即开始加载结果页面。因此,您有几种选择:
window.close()
。