由于业务逻辑需要,要用户在点击下载链接后,出现 5 秒倒计时,然后本页面上出现下载地址。由于对 javascript 不太熟悉,求实现代码。
有点类似于这个问题,但是我不是要直接下载文件,而是出现下载地址。 https://segmentfault.com/q/1010000006082435
由于业务逻辑需要,要用户在点击下载链接后,出现 5 秒倒计时,然后本页面上出现下载地址。由于对 javascript 不太熟悉,求实现代码。
有点类似于这个问题,但是我不是要直接下载文件,而是出现下载地址。 https://segmentfault.com/q/1010000006082435
|
cxe2vAug 16, 2016
1
setTimeout()和 setInterval() 结合使用
|
|
cstomeAug 16, 2016 via Android
2
<div style=“ display: none ”>下载链接</div>
然后 js : setTimeout()将那个 div 的 display 改成 block |
|
lijshAug 16, 2016
3
1. 倒计时功能要写个 setInterval ,每秒触发一次, 5 秒后清除掉。
2. 写个函数 fn ,实现显示下载地址的功能,然后这样调用: setTimeout(fn, 5000) |
|
flowfireAug 16, 2016
4
。。。。。为什么我看到这个问题的第一反应是怎么防止前段看代码直接抓数据。。。
|
|
ljbha007Aug 16, 2016
6
伸手党在这里是会被骂的
|
|
ArthurKingAug 16, 2016
9
为什么我第一时间想到了 1024 上经常用到的图床……
|
|
annielongAug 16, 2016
10
如果是为了防抓取,还要加上 ajax 读取下载地址,现在 1024 有一个图床特闹人,同样的 url 直接访问可以看到图片,一旦下载就变成了小图片,还没开始研究怎么跳过去
|
|
11
这方面你可以请教一下 yunfile 这个网盘
|
|
Durandal01Aug 16, 2016
12
~~~
[5,4,3,2,1,0].forEach((i) => { setTimeout((i) => { if(i === 0) { ajax.getDownloadUrl().then((url) => { yourButton.href = url; yourButton.removeAttr('disabled'); }) } else { yourButton.innerHTML = `倒数:${i}`; } }), 1000*(5 - i)); }); ~~~ 大概是这样吧……不保证能运行哟 |
|
phxsunsAug 16, 2016
13
@Durandal01 你这代码楼主肯定跑不起来。。。
|
|
likaiAug 16, 2016
14
只是显示隐藏内容不还倒数就没意义了吧。
肯定是延时向服务器请求下载链接。然后显示在指定位置 |
|
15
|