卡了好久的问题总算是解决了,先放代码在这里,之后有空再细细讲解每一行代码。
使用教程:在任意领奖页面按F12打开控制台输入下面代码运行即可。等到放货时就会开始自动领取了。
对于某些领奖需要验证码的用户,大概率是因为用的等级太低的小号,这里是没办法自动领取的。所以我这边特地做了系统通知的功能,只要你平常都是在玩电脑的,保持别全屏打游戏或者看视频,那么这个放货通知都是能收到的,这个功能主要用来解决网页奖励随机时间段放货需要时时刻刻留意浪费精力的问题。
注意事项:代码仍存在些小bug,如果运行发现控制台报错了,记得主动刷新页面重新运行下代码。新发现存在内存溢出问题,暂时只能运行半个多小时内存就满了,待优化。
代码:
var btn = document.createElement("button");
btn.addEventListener('click', async () => {
const permission = await Notification.requestPermission();
if (permission === 'granted') {
const notification = new Notification('浏览器设置提醒!', {
body: '通知功能已开启~',
tag: 'tip'
})
}
});
btn.click();
const btn2 = document.createElement("button");
btn2.addEventListener('click', async () => {
const permission = await Notification.requestPermission();
if (permission === 'granted') {
var notification = new Notification('余量提醒!', {
body: '可以抢数据金咯~',
icon: 'https://i0.hdslb.com/bfs/activity-plat/static/n8ACBif3nb.png',
requireInteraction: true
});
notification.onclick = (e) => {
window.focus()
notification.close()
}
}
});
var timeout = 1;
var count = 0;
var current = location.href;
setTimeout('reload()', 1000 * timeout);
function reload() {
count++;
console.log('自动刷新,刷新次数:' + count);
var fr4me = '<frameset cols=\'*\'>\n<frame src=\'' + current + '\'/>' + '</frameset>';
with (document) { write(fr4me); void (close()) }
window.onload = function () {
setTimeout(() => {
var button = parent.frames[0].document.getElementsByClassName('button exchange-button')[0];
console.log(button);
if (button.className === 'button exchange-button') {
var myInterval = setInterval(function () { button.click(); }, 99);
btn2.click();
}
setTimeout(() => {
clearInterval(myInterval);
reload();
}, 800);
}, 100);
}
}
参考文献:
[1] 【JS】浏览器桌面通知[EB/OL].https://www.bilibili.com/video/BV1bz4y1W7nK
[2] console控制台代码实现网页自动刷新,且刷新后不失效[EB/OL].https://blog.csdn.net/shenxian1021/article/details/136389481
[3] 为什么脚本和手抢激励计划没区别[EB/OL].https://www.bilibili.com/read/cv34152999
[4] 解决chrome浏览器只要不是当前网页就冻结网页,不能后台挂机页游之类的办法[EB/OL].https://www.bilibili.com/read/cv9622518