早上,朋友說淘寶一塊錢搶東西來了,一看還有點新鮮,叫「砍價」,就是用戶用鼠標一刀刀的砍,價錢就一直減,直到減到一元,感受還比較新鮮,因而想寫個插件還砍他一砍,因而就有了這個插件ajax
原本沒什麼可說了,上代碼就完了,但我仍是把過程記錄一下吧,分享分享chrome
所用工具:Chromejson
砍價地址:http://www.tmall.com網絡
下載地址函數
首先,找到上圖中幕後指使者,也就是腳本工具
是否是看不懂,這明顯通過了壓縮,要想容易理解,最好能恢復壓縮前的樣子,可是咱們沒辦法實現這一點,就只能藉助工具將格式化一下了測試
是否是要好看多了,接下來對其進行分析,此腳本是基於淘寶的KISSY庫寫的,多看幾遍腳本就能夠發現,此腳本註冊了以下幾個模塊jsonp
hyp,model,view,ua-helper動畫
hyp主要爲模塊入口,負責初始化和調度其餘模塊spa
model爲核心模塊
view負責顯示
ua-helper爲輔助模塊
在搶票界面上移動鼠標,而後監聽提交地址,再用提交地址去代碼中搜索,便會發現此代碼
它在model模塊內,搜索使用到 i 這個變量的地方便會發現這個函數
分析代碼發現,這正是砍價的核心代碼,blade就是砍的意思,jsonp就是對ajax的封裝,以下:
明白了調用方式,咱們只須要調用此函數便可
爲了更好的效果,我還發現了
var cx = l.locationToDegree(x1, y1);
o._limitScratch(r, cx);
這兩句是揮動刀的動畫,因而組裝一段代碼將其放入初始化代碼中便獲得了以下代碼
啓用開發者模式,瀏覽到文件目錄,點擊肯定便可(下載的話,須要先解壓)。
通過測試,秒殺插件就可使用了,等待開始後,插件會調用淘寶的腳本自動砍價,砍價間隔默認爲250毫秒左邊砍一下,再過250毫秒右邊砍一下,如此往復。
打開TbBlade.js,修改圖中的數值,而後從新加載插件,刷新網頁便可
提示「網絡忙」,「商品到別人碗裏去了」之類的遮罩層會被隱藏,不會擋住揮刀動畫了。