最近自學了js基礎不太扎實,寫一個騰訊課堂自動簽到的腳本,想實作用戶輸入時間和次數來自動簽到,想法是先獲取用戶的值然后呼叫函式,函式中先會清處計時器然后從新呼叫計時器用新值。
// ==UserScript==
// @name 騰訊課堂自動簽到
// @namespace http://tampermonkey.net/
// @version 0.1
// @description 騰訊課堂自動簽到腳本,可自定義簽到次數和每次間隔時間。
// @author 奧里給
// @match https://ke.qq.com/webcourse/index.html*
// @grant unsafeWindow
// ==/UserScript==
//默認的次數和時間
var ciShu=2,denDai=10;
var d = new Date();
var mainD;
var html = (
'<div style="border: 2px dashed rgb(0, 85, 68); width: 330px; position: fixed; top: 0; left: 0; z-index: 99999; background-color: rgba(70, 196, 38, 0.6); overflow-x: auto;">' +
'<span style="font-size: medium;"></span>' +
'<div id = "yunXin" style="font-size: medium;">腳本正常運行中...</div>' +
'<input type="text" id="time" style="margin-right: 10px; width:300px;" placeholder="輸入每次時間間隔,默認10秒" ></input>'+
'<input type="text" id="ciShu" style="margin-right: 10px;width:300px;" placeholder="輸入一共需要簽到的次數,默認2次" ></input>'+
'<button style="margin-right: 10px;"onclick = "ciShu=parseFloat(document.getElementById(\'ciShu\').value);denDai=parseFloat(document.getElementById(\'time\').value);main();">更改設定</button>' +
'<div style="max-height: 300px; overflow-y: auto;">' +
'<table border="1" style="font-size: 12px;">' +
'<thead>' +
'<tr>' +
'<th style="width: 30px; min-width: 100px; font-weight: bold; text-align: center;">型別</th>' +
'<th style="width: 60%; min-width: 100px; font-weight: bold; text-align: center;">時間</th>' +
'<th style="min-width: 100px; font-weight: bold; text-align: center;">結果</th>' +
'</tr>' +
'</thead>' +
'<tbody id = "jieGuoFanKui">' +
'</tbody>' +
'</table>' +
'</div>' +
'</div>'
);
//建立直播div物件
var addH = document.getElementById("react-body");
//創建div用于存放html
var Element = document.createElement("div");
//系結元素
addH.appendChild(Element);
//添加元素
Element.innerHTML = html;
//---------騰訊課堂簽到函式---------
function qianDaoJiaoBen(){
var qianDaoBtn = document.getElementsByClassName("s-btn s-btn--primary s-btn--m");
if((qianDaoBtn.length > 0) && (ciShu > 0)){
for(var i of qianDaoBtn){
if (i.innerHTML == '簽到'){
i.click();
tianJia();
ciShu -= 1};
if(i.innerHTML == '確定'){i.click();break;};};
}else if(ciShu == 0){
clearInterval(mainD);};}
//---------添加簽到結果函式-------------
function tianJia(){
var jieGuoY=(
'<tr>' +
'<td colspan="1">'+
'簽到'+
'</td>' +
'<td colspan="1">'+String(d.getHours())+':'+String(d.getMinutes())+':'+String(d.getSeconds())+'</td>' +
'<td colspan="1">'+
'成功'+
'</td>' +
'</tr>');
document.getElementById('jieGuoFanKui').innerHTML = jieGuoY;};
//--------------main--------------
function main(){
//清理計時器
clearInterval(mainD);
//重新呼叫
mainD = setInterval(qianDaoJiaoBen,denDai*1000);
if(ciShu == 0){document.getElementById('yunXin').innerHTML = '所有簽到已經完成,腳本關閉';}}
main();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/58589.html
標籤:JavaScript
下一篇:js攔截包含某些關鍵詞的網頁
