是否有可能通过javascript点击两个事件或更多事件?

时间:2012-06-07 21:43:37

标签: javascript jquery html triggers

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

该页面包含一个表单,在访问者填写表单后,该站点将把他们带到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。如果我想在文件开始下载后添加倒计时,然后在倒计时结束时进行页面重新加载,该怎么办?

看起来已经问过几个问题......提前多谢了。

4 个答案:

答案 0 :(得分: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&#39; s mod_upload可能值得一看。不幸的是,还没有稳定版的Lighttpd 2。


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

答案 1 :(得分:1)

onClick参数有两个选项:

  1. 在每行可以有一个

  2. 之间添加分号
  3. 编写一个函数来执行所有任务,并调用onClick方法。

  4. 其他人可能能够帮助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();
    }
});