http://www.zhihu.com/question/36426051/answer/67690322
本来我不熟悉 js,正好研究一下
1 (function(window, document) { 2 var interval = 800; 3 var closeDelay = 200; 4 var index = 0; 5 var couponLinks; 6 var getCoupon = function() { 7 if (index >= couponLinks.length) { 8 console.log("领取完毕"); 9 return; 10 } 11 var coponLink = couponLinks[index]; 12 coponLink.click(); 13 index++; 14 console.log("领取 第" + index + " 张"); 15 setTimeout(getCoupon, interval); 16 setTimeout(function() { 17 var close = document.querySelector('.mui-dialog-close'); 18 if (close != null) close.click(); 19 }, closeDelay); 20 } 21 22 var _scrollTop = 0; 23 var _scrollStep = document.documentElement.clientHeight; 24 var _maxScrollTop = document.body.clientHeight - _scrollStep; 25 26 var autoScrollDown = setInterval(function() { 27 _scrollTop += _scrollStep; 28 if (_scrollTop <= _maxScrollTop) { 29 document.body.scrollTop = _scrollTop; 30 return; 31 } 32 clearInterval(autoScrollDown); 33 34 couponLinks = document.querySelectorAll('.mui-act-item-yhqbtn'); 35 console.log("总共:" + couponLinks.length + "条张优惠券待领取…"); 36 getCoupon(); 37 }, 500); 38 }) (window, document);
搜一下关键的几个函数和变量,就很容易理解了。
document.querySelector
document.querySelectorAll
document.documentElement.clientHeight
document.body.clientHeight
document.body.scrollTop
setInterval
setTimeout
搞明白了这几含义,写个自动领券的代码还不是分分钟~