我有使用javascript提交表单的JSP。其提交弹出窗口后的弹出窗口必须关闭。我使用以下代码:Firefox在提交后没有执行语句
document.forms["formname"].submit();
window.close();
问题是 - 表单被成功提交,但窗口没有关闭。 它在IE中工作正常。
我有使用javascript提交表单的JSP。其提交弹出窗口后的弹出窗口必须关闭。我使用以下代码:Firefox在提交后没有执行语句
document.forms["formname"].submit();
window.close();
问题是 - 表单被成功提交,但窗口没有关闭。 它在IE中工作正常。
我怀疑它是如何在IE中工作的。 在您提交表单并将控件返回给浏览器之前/之后,Javascript没有任何控制权。在提交表单后,您应该使用另一种机制来关闭窗口。
而不是关闭窗口关闭窗口的上下文中运行的脚本,请尝试从打开窗口的上下文关闭它。例如:
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。
正如您发现的那样,一旦您提交了表单,就会将控制权移交给浏览器,并且不保证该页面中的任何其他javascript都会执行。它可能会立即开始加载结果页面。因此,您有以下几种选择:
window.close()
。
表单被提交并将浏览器重定向到结果页面。我认为代码没有再到达'window.close()'。 – Joseph 2012-02-24 06:52:56
Congrates ..用于IE Support pulkit :)。我们很少在IE中找到支持,而不是在Mozilla Firefox中。 – 2012-02-24 07:01:51