0

我目前正在为网站访问者制作一个临时下载页面。

该页面包含一个表格,访问者填写表格后,网站会将他们带到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>

但是所有这些都不起作用。各位高手有什么好的想法吗,非常感谢。

PS如果我想在文件开始下载后添加倒计时,然后在倒计时完成时重新加载页面。

看起来已经问了几个问题......提前非常感谢。

4

4 回答 4

4

这有效:

http://jsbin.com/imikit/5

超时时间必须设置为大于提供文件的服务器的响应时间,否则 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 的mod_upload可能值得一看。不幸的是,目前还没有稳定版本的 Lighttpd 2。


您可以尝试将 cookie 与下载一起发送,然后使用 javascript 检测它。这将在发送标头之后设置,或者在发送正文之后设置。(测试一下)

于 2012-06-07T21:56:29.403 回答
1

您有两个onClick参数选项:

  1. 在可以有一个的每一行之间添加分号

  2. 编写一个函数来完成所有任务,并onClick调用该方法。

其他人可能会在 jQuery 方面提供帮助,但我认为应该是类似的。

所有这些方法都会触发尽可能多的事件。

对于倒计时,请尝试该setTimeout()功能。

编辑:看到评论后,尝试<a href="file.pdf" target="_blank" onClick="window.location.reload()">Click Here</a>. 这将在弹出窗口中打开链接并重新加载当前链接 - 您可能需要 setTimeout() 进行重新加载,以便在 reload() 事件触发之前打开链接。

于 2012-06-07T21:47:57.703 回答
1

您可以做的一件事是在新窗口中打开下载,然后重定向页面。

<a href="/file.pdf" id="FileDownload">The File</a>
<script>
   $("#FileDownload").click(function(e){
       e.preventDefault();
       window.open(this.href);
       location.reload();
   });
</script>
于 2012-06-07T21:54:08.330 回答
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();
    }
});
于 2012-06-07T21:58:54.240 回答