推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
huage

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

  •  
  •   huage · Aug 16, 2016 · 5259 views
    This topic created in 3583 days ago, the information mentioned may be changed or developed.

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

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

    17 replies    2016-08-16 20:43:49 +08:00
    cxe2v
        1
    cxe2v  
       Aug 16, 2016
    setTimeout()和 setInterval() 结合使用
    cstome
        2
    cstome  
       Aug 16, 2016 via Android
    <div style=“ display: none ”>下载链接</div>

    然后 js : setTimeout()将那个 div 的 display 改成 block
    lijsh
        3
    lijsh  
       Aug 16, 2016
    1. 倒计时功能要写个 setInterval ,每秒触发一次, 5 秒后清除掉。
    2. 写个函数 fn ,实现显示下载地址的功能,然后这样调用: setTimeout(fn, 5000)
    flowfire
        4
    flowfire  
       Aug 16, 2016
    。。。。。为什么我看到这个问题的第一反应是怎么防止前段看代码直接抓数据。。。
    sheep3
        5
    sheep3  
       Aug 16, 2016
    @flowfire = =同这么想
    ljbha007
        6
    ljbha007  
       Aug 16, 2016
    伸手党在这里是会被骂的
    huage
        7
    huage  
    OP
       Aug 16, 2016
    @ljbha007 是请教大家,不算申手直接拿,我也在 V2EX 中回答过许多问题。术业有专攻,入门要人指点带路。
    ljbha007
        8
    ljbha007  
       Aug 16, 2016
    @huage 我认为“求实现代码。” 是直接叫人帮你写的意思
    ArthurKing
        9
    ArthurKing  
       Aug 16, 2016
    为什么我第一时间想到了 1024 上经常用到的图床……
    annielong
        10
    annielong  
       Aug 16, 2016
    如果是为了防抓取,还要加上 ajax 读取下载地址,现在 1024 有一个图床特闹人,同样的 url 直接访问可以看到图片,一旦下载就变成了小图片,还没开始研究怎么跳过去
    ZGLHHH
        11
    ZGLHHH  
       Aug 16, 2016   ❤️ 1
    这方面你可以请教一下 yunfile 这个网盘
    Durandal01
        12
    Durandal01  
       Aug 16, 2016
    ~~~
    [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
        13
    phxsuns  
       Aug 16, 2016
    @Durandal01 你这代码楼主肯定跑不起来。。。
    likai
        14
    likai  
       Aug 16, 2016
    只是显示隐藏内容不还倒数就没意义了吧。
    肯定是延时向服务器请求下载链接。然后显示在指定位置
    xycool
        15
    xycool  
       Aug 16, 2016   ❤️ 1
    huage
        16
    huage  
    OP
       Aug 16, 2016
    @xycool 感谢指导!
    huage
        17
    huage  
    OP
       Aug 16, 2016
    @ZGLHHH 确实就是那样的需求
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5435 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 08:57 · PVG 16:57 · LAX 01:57 · JFK 04:57
    ♥ Do have faith in what you're doing.