學JS的心路歷程Day30 - JS 應用- 搶優惠券 - iT 邦幫忙 | javascript搶票
前幾天是雙十一,各家電商網站都推出了各種活動和現今優惠券,當時在逛PTT時看到了有篇文章,提供程式碼教大家用JS的方式搶票,看了一下後發現好像很多人好奇這是怎麼做的,於是就想說想一篇文章來講解一下。我們先來看一下折價券的樣子。怎麼點都不會有東西對吧?開啟開發人員選項,選到折價券的位置。可以看到說是因為disable屬性,才沒有辦法點擊恩?所以只要取消掉就可以點擊了嗎?當然不是這樣啊!我們必須等時間到時候再點擊才可以!那該怎麼做呢?首先必須用JS抓到折價券的DOM元素:constcoupon_list=document.getElementsByCl...
前幾天是雙十一,各家電商網站都推出了各種活動和現今優惠券,當時在逛 PTT 時看到了有篇文章,提供程式碼教大家用 JS 的方式搶票,看了一下後發現好像很多人好奇這是怎麼做的,於是就想說想一篇文章來講解一下。
我們先來看一下折價券的樣子。怎麼點都不會有東西對吧?
開啟開發人員選項,選到折價券的位置。
可以看到說是因為 disable 屬性,才沒有辦法點擊
恩?所以只要取消掉就可以點擊了嗎?當然不是這樣啊!
我們必須等時間到時候再點擊才可以!那該怎麼做呢?
首先必須用 JS 抓到折價券的 DOM 元素:
const coupon_list = document.getElementsByClassName("coupon-list"); const coupon_250 = coupon_list[0].children[2]; console.log(coupon_250);再來,我們得設定時間到時執行按下按鈕的動作,在 JS 中時間都是以世界標準時間(UTC)時間計算的,也就是從 1970 年 1 月 1 日開始的毫秒數值來儲存時間。
當然可以透過 JS 的 Date() 方法轉換,但是我這個人比較懶惰,找了個可以直接幫我轉的網頁。
const coupon_list = document.getElementsByClassName("coupon-list"); const coupon_250 = coupon_list[0].children[2]; const endTime = 1541836800 * 1000; alert ={};由於網頁轉出來的是 UNIX 時間,需要乘上 1000 才會是 JS 的時間值。順便關閉了彈跳視窗的提醒,不然網頁會很難關閉。
接著我們用 setInterval() 計時,當 現在時間 - 開始搶購時間 <= 0 時候,再利用 setInterval() 對折價券的按鈕下達按下的指令:
s...