我需要为用户提供一个文件,并将它们带到一个新的URL。发送下载文件的代码在我的提交处理程序中。我在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()函数,就像它完全忽略该行一样;这种情况在所有浏览器中都会发生,甚至更糟。
答案 0 :(得分:0)
提交表单后,当前页面上的所有操作都会停止,除非您要发布到新页面(target =“”)或iframe。
答案 1 :(得分:0)
我最终在我的表单中添加了target =“_ blank”,并根据浏览器执行了不同的功能。感谢this page帮助检测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";
}
}