将文件发送给用户,然后使用Javascript加载新URL

时间:2011-10-20 20:59:47

标签: javascript internet-explorer-9 form-submit

我需要为用户提供一个文件,并将它们带到一个新的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()函数,就像它完全忽略该行一样;这种情况在所有浏览器中都会发生,甚至更糟。

2 个答案:

答案 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";
    }
}