Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 下载文件并重定向…或其他选项_Javascript_Jquery_Redirect_Download - Fatal编程技术网

Javascript 下载文件并重定向…或其他选项

Javascript 下载文件并重定向…或其他选项,javascript,jquery,redirect,download,Javascript,Jquery,Redirect,Download,用户填写表格。使用有效的表单,他们单击下载文件。我希望能够将它们重定向到另一个页面(例如,page2.html)并启动下载 我无法在page2.html上启动下载,因为如果没有直接单击下载链接,大多数浏览器都会标记安全警告 这样的事情是如何使用javascript或jquery实现的?显然,以下内容不起作用,但仅用于说明目的: document.getElementById("foo").onclick = function(){ window.location = "/downloa

用户填写表格。使用有效的表单,他们单击下载文件。我希望能够将它们重定向到另一个页面(例如,
page2.html
)并启动下载

我无法在
page2.html
上启动下载,因为如果没有直接单击下载链接,大多数浏览器都会标记安全警告

这样的事情是如何使用javascript或jquery实现的?显然,以下内容不起作用,但仅用于说明目的:

document.getElementById("foo").onclick = function(){
     window.location = "/download.exe";
     window.location = "/page2.html";
}

加载页面后,您可以通过让
page2.html
“更改”其位置(到您的下载URL)来启动第2页上的下载:

$(function ()
{
    setTimeout(function ()
    {
        window.location.pathname = '/download.exe';
    }, 5000); // download the file in 5 seconds
});

我很确定(虽然不是100%)这不会触发安全警告。

您可以使用指向该文件的链接,然后单击
onclick
触发“马上转到下一页”


函数谢谢{
setTimeout(函数(){
document.location.pathname=“page2.html”;
}, 1000);
}

我在Safari 5、Chrome 8、FF 3.6和IE7、IE8上对此进行了测试。对于Internet Explorer,下载行为与直接单击下载链接不同。在IE上,显示消息“帮助保护您的安全…”,而如果您直接单击,它只会打开一个文件保存。@Emile:无论您做什么,情况都会如此;这是你必须忍受的正常行为。这就是为什么网站经常会有“如果这个下载没有开始,点击这里”之类的东西。我相信在页面加载时启动下载也是正常的(没有任何其他问题)。附带说明……这很奇怪,但是在Safari 5上,对于Chrome,window.location.pathname会产生意外的结果……Safari会尝试使用默认搜索引擎“搜索”您的路径名。@Emile:您是说“Safari 5还是Chrome?”有没有可能发布一个复制链接?@Matt!哈哦…意味着Safari5适用于Windows7。我没有要显示的服务器版本,但是您可以将window.location.pathname附加到onclick事件。好的!这至少对IE有用。在FF、Chrome和Safari上,用户没有足够的时间单击“允许”字段。但正如你在上面的评论中所说,我可能不得不接受它。可能对我的IE用户使用此功能。他们是否只是在尝试转到其他内容时关闭“下载”提示?奇怪。是的,下载提示消失了(IE上除外)。如果添加
target=“\u blank”
<script>
function thanks() {
    setTimeout(function () {
        document.location.pathname = "page2.html";
    }, 1000);
}
</script>

<a href="file.exe" onclick="thanks()">Download now!</a>