我需要为用户提供一个文件,并将它们带到一个新的URL。发送下载文件的代码在我的Submit处理程序中。我在Chrome和Firefox中这样做:
function submitMyForm() {
document.forms[0].submit();
window.open("http://www.myURL.com");
}
在Chrome和Firefox中,这工作得很好。它在一个新选项卡中打开myURL.com,并提示用户打开/保存我创建的文件。然而,在IE9中,myURL.com的新标签被打开,但下载提示是隐藏的,因为它弹出在旧的第一个标签的底部,用户看不到。
我试图修复这个问题,通过坚持只有一个选项卡,像这样:
function submitMyForm() {
document.forms[0].submit();
window.location.href = "http://www.myURL.com";
}
然而,这只是立即加载新的URL,而不调用我的submit()函数,几乎就像它完全忽略了那一行;这在所有浏览器中都会发生,甚至更糟。
一旦表单提交,当前页面上的所有操作都停止,除非您要提交到新页面(target=")或iframe.
我最终将target =" _blank"添加到我的表单中,并基于浏览器执行不同的功能。感谢这个页面帮助检测Chrome。
function submitform() {
document.forms[0].submit();
//Test for Chrome
if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1) {
//this works in Chrome
window.open("http://www.myURL.com");
}
else {
//this works in IE9 and Firefox
window.location.href = "http://www.myURL.com";
}
}