求请教代码:点击某个链接, 5 秒后在本页面上出现隐藏的内容(下载地址)

2016-08-16 11:57:53 +08:00
 huage

由于业务逻辑需要,要用户在点击下载链接后,出现 5 秒倒计时,然后本页面上出现下载地址。由于对 javascript 不太熟悉,求实现代码。

有点类似于这个问题,但是我不是要直接下载文件,而是出现下载地址。 https://segmentfault.com/q/1010000006082435

4826 次点击
所在节点    JavaScript
17 条回复
cxe2v
2016-08-16 11:59:57 +08:00
setTimeout()和 setInterval() 结合使用
cstome
2016-08-16 12:16:04 +08:00
<div style=“ display: none ”>下载链接</div>

然后 js : setTimeout()将那个 div 的 display 改成 block
lijsh
2016-08-16 14:23:07 +08:00
1. 倒计时功能要写个 setInterval ,每秒触发一次, 5 秒后清除掉。
2. 写个函数 fn ,实现显示下载地址的功能,然后这样调用: setTimeout(fn, 5000)
flowfire
2016-08-16 14:43:21 +08:00
。。。。。为什么我看到这个问题的第一反应是怎么防止前段看代码直接抓数据。。。
sheep3
2016-08-16 15:05:25 +08:00
@flowfire = =同这么想
ljbha007
2016-08-16 15:07:54 +08:00
伸手党在这里是会被骂的
huage
2016-08-16 16:10:59 +08:00
@ljbha007 是请教大家,不算申手直接拿,我也在 V2EX 中回答过许多问题。术业有专攻,入门要人指点带路。
ljbha007
2016-08-16 16:17:21 +08:00
@huage 我认为“求实现代码。” 是直接叫人帮你写的意思
ArthurKing
2016-08-16 16:18:27 +08:00
为什么我第一时间想到了 1024 上经常用到的图床……
annielong
2016-08-16 16:58:22 +08:00
如果是为了防抓取,还要加上 ajax 读取下载地址,现在 1024 有一个图床特闹人,同样的 url 直接访问可以看到图片,一旦下载就变成了小图片,还没开始研究怎么跳过去
ZGLHHH
2016-08-16 17:00:02 +08:00
这方面你可以请教一下 yunfile 这个网盘
Durandal01
2016-08-16 17:20:12 +08:00
~~~
[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));
});
~~~

大概是这样吧……不保证能运行哟
phxsuns
2016-08-16 18:19:45 +08:00
@Durandal01 你这代码楼主肯定跑不起来。。。
likai
2016-08-16 18:30:23 +08:00
只是显示隐藏内容不还倒数就没意义了吧。
肯定是延时向服务器请求下载链接。然后显示在指定位置
xycool
2016-08-16 18:36:36 +08:00
huage
2016-08-16 20:38:39 +08:00
@xycool 感谢指导!
huage
2016-08-16 20:43:49 +08:00
@ZGLHHH 确实就是那样的需求

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/299597

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX