我目前正在为网站访问者制作临时下载页面。
该页面包含一个表单,在访问者填写表单后,该站点将把他们带到pdf下载页面。
在下载页面中,有一些pdf文件下载链接(我只是使用标签。)。但是,我想对这些链接进行onclick事件,一旦点击它们,页面将自动刷新或重定向到其他页面。
<a href="/file.pdf" onClick="window.location.reload()">The File</a>
我也尝试过jquery方式。
<a href="/file.pdf" id="FileDownload">The File</a>
<script>
$("#FileDownload").click(function(){
location.reload();
});
</script>
但所有这些都不起作用。大师们对此有什么好的想法,非常感谢。
P.S。如果我想在文件开始下载后添加倒计时,然后在倒计时结束时进行页面重新加载,该怎么办?
看起来已经问过几个问题......提前多谢了。
答案 0 :(得分:4)
这有效:
超时必须设置为超过服务文件的服务器的响应时间,否则javascript不会被激活。所以把它设置得高。
<a href="http://ipv4.download.thinkbroadband.com/1GB.zip" id="download">The File</a>
$('#download').click(function() {
setTimeout(function() {
window.location = 'http://www.google.com/';
}, 1000);
});
或者
<a href="http://ipv4.download.thinkbroadband.com/1GB.zip" id="download" target="_blank">The File</a>
$('#download').click(function() {
window.location = 'http://www.google.com/';
});
一旦下载开始,大多数浏览器都会关闭新打开的窗口。
Lighttpd 2&#39; s mod_upload可能值得一看。不幸的是,还没有稳定版的Lighttpd 2。
您可以尝试与下载一起发送cookie,然后使用javascript检测它。这将在发送标头之后或在发送主体之后设置。 (测试一下)
答案 1 :(得分:1)
onClick
参数有两个选项:
在每行可以有一个
编写一个函数来执行所有任务,并调用onClick
方法。
其他人可能能够帮助jQuery方面,但我认为它会类似。
所有这些方法都会引发任意数量的事件。
倒计时,请尝试setTimeout()
功能。
编辑:看到评论后,请尝试<a href="file.pdf" target="_blank" onClick="window.location.reload()">Click Here</a>
。这将在弹出窗口中打开链接并重新加载当前的链接 - 您可能需要重新加载的setTimeout(),以便在reload()事件触发之前打开链接。
答案 2 :(得分:1)
您可以做的一件事是在新窗口中打开下载,然后重定向页面。
<a href="/file.pdf" id="FileDownload">The File</a>
<script>
$("#FileDownload").click(function(e){
e.preventDefault();
window.open(this.href);
location.reload();
});
</script>
答案 3 :(得分:1)
当您单击链接时,默认操作是遵循它,添加onClick代码不会更改它。
尝试:
onClick="windows.location.reload();return false;"
这将解决第一部分。
至于第二部分(下载完成时的计数器/重定向),使用此插件http://johnculviner.com/post/2012/03/22/Ajax-like-feature-rich-file-downloads-with-jQuery-File-Download.aspx下载文件并使用successCallback进行重定向:
$.fileDownload('/file.pdf', {
successCallback: function () {
windows.location.reload();
}
});