大仁: 小明,听说你大学的专业是计算机科学与技术?
小明: 是的,大仁哥。
大仁: “那好,去帮我抢个荣耀v9。”
小明:领导,请你尊重这门专业,计算机科学是……
大仁: 请你谈谈NAS设备卷管理模块中失效数据恢复问题的应用。
小明:大仁哥,脚本写好了”
1.效果图
运行的效果图,就是模拟不断点击换一换的效果
2.图解
怎么做的呢?让我们一步步分解
document.getElementsByClassName("hot-refresh")[0]
已经获取该元素
模拟点击
定时器每100毫秒点击一次
setInterval(function () {
if (Date.now() > new Date("2017-3-21 10:08:00")) {
document.getElementsByClassName("hot-refresh")[0].click()
}
}, 100);
1.大于某个时间点
2.模拟点击
3.JS组成
- 核心(基于ECMAScript规范)
- 文档对象模型(DOM)
- 浏览器对象模型(BOM)
window对象是BOM的顶层(核心)对象,所有对象都是通过它延伸出来的,也可以称为window的子对象
由于window是顶层对象,因此调用它的子对象时可以不显示的指明window对象,例如下面两行代码是一样的:
document.write("www.jianshu.com");
window.document.write("www.jianshu.com");
通过这样的树,我们就可以很快找到我们想要操作的节点,进而进行各种属性,方法,事件等的操作。
注意元素、属性、和内容之间的区别,简单的说,网页上可见的东西叫做内容,内容是被开标签,闭标签抱起来的那部分:<a>我的链接</a>,属性说明元素的特点
4. chrome扩展程序
为什么要打包成扩展程序,console的脚本reload之后会被清空无法继续执行,扩展程序是个好东西
{
"name": "第一个Chrome插件",
"manifest_version": 2,
"version": "1.0",
"description": "jack的第一个chrome扩展程序",
"browser_action": {
"default_icon": "logo.png"
},
"content_scripts": [
{
"matches": ["https://www.baidu.com/*"],
"js": ["content.js"]
}
]
}
setInterval(function () {
if (Date.now() > new Date("2017-3-21 10:08:00")) {
document.getElementsByClassName("hot-refresh")[0].click()
}
}, 100);
5. 阿里月饼脚本分析
setInterval(function() {
if(Date.now() >= new Date("2016-09-12 15:59:00")) {
$("#seckillQuantity").val(1);//1盒
$(".buyButtons.J_buyButtons").click();//抢购按钮
var value = $(".answerList").children().eq(0).html(); //验证码取值
$('#randomAnswer').val(value);//验证码填值
$('.answer-button').children().eq(0).click();//提交验证码
}
}, 10)
6. 华为荣耀V9抢购
setInterval(function () {
if (Date.now() > new Date("2017-3-21 10:08:00")) { //时间修改为当天的10:08
document.getElementsByClassName("button-style-disabled-1 button-event-disabled")[0].click()
//class得看10:08分后的 复制下来就行,明天看看 更新下
}
}, 10);
放到chrome扩展程序就不会被reload清空了
7.附上一个查看密码的技巧
大仁:咦,这个链接是干嘛的?
小明:糟了,这个不是我的情书脚本么?(超级酷炫有爱的js情书)
查看原文,可以看到小明用JavaScript写的情书,参考程序员开源,希望各位看官们为小明转发,转发超过1000次,小奈将接受小明的告白,查看原文为小明疯狂打call把。
网友评论