早上,朋友说淘宝一块钱抢东西来了,一看还有点新鲜,叫“砍价”,就是用户用鼠标一刀刀的砍,价钱就一直减,直到减到一元,感受还比较新鲜,因而想写个插件还砍他一砍,因而就有了这个插件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,修改图中的数值,而后从新加载插件,刷新网页便可
提示“网络忙”,“商品到别人碗里去了”之类的遮罩层会被隐藏,不会挡住挥刀动画了。