js之迅速~純種jS無任何依賴~跟蹤步入版

// ==UserScript==

// @name         V2

// @namespace    https://bbs.tampermonkey.net.cn/

// @version      0.1.0

// @description  try to take over the world!

// @author       S0919756

// @match        *

// ==/UserScript==

// 這是一個全局變量,用來記錄請求的狀態

var globalRequestState = {

    isRequesting: false, // 這告訴我們是否有請求正在進行

    requestDetails: null // 這裡會存儲請求的細節

};

// 這個函數用來發送請求

function sendRequest(details) {

    globalRequestState.isRequesting = true; // 標記我們正在發送請求

    globalRequestState.requestDetails = details; // 記錄請求的細節

    window.postMessage({ type: 'supportRequest', details: details }, '*'); // 向後台發送請求

}

// 這是一個全局變量,用來記錄請求的狀態

var globalRequestState = {

    isRequesting: false, // 這告訴我們是否有請求正在進行

    requestDetails: null // 這裡會存儲請求的細節

};

// 這個函數用來發送請求

function sendRequest(details) {

    globalRequestState.isRequesting = true; // 標記我們正在發送請求

    globalRequestState.requestDetails = details; // 記錄請求的細節

    handleRequest(details); // 在此處理請求,而不是向後台發送請求

}

// 這個函數用來處理請求

function handleRequest(_details) {

    globalRequestState.isRequesting = false; // 更新全局變量,表示請求已經完成

    globalRequestState.requestDetails = null; // 清空請求細節

}

// 當頁面加載完成時,這個函數會被自動調用

window.addEventListener('DOMContentLoaded', (event) => {

    console.log('頁面加載完成');

    if (!globalRequestState.isRequesting) { // 如果沒有請求正在進行

        sendRequest('需要的支援細節'); // 發送一個新的請求

    }

});


 

for (let value of Object.values(websiteData)) {

    count = count + 1;

    if (value.url.includes(window.location.hostname)) {

        websiteDataValues.url = value.url;

        login = value.login;

        password = value.password;

        break;

    }

}

// 從websiteData數組中獲取下一個Url

async function getNextUrl() {

    // 如果到達數組的結尾,則回到開頭

    if (count >= websiteData.length) {

        websiteDataValues.nextUrl = websiteData[0].url;

    } else {

        websiteDataValues.nextUrl = websiteData[count].url;

    }

    // 如果有覆蓋下一個Url的情況

    if (websiteDataValues.overrideNextUrl) {

        websiteDataValues.nextUrl = websiteDataValues.overrideNextUrl;

    }

    // 在進入下一個url之前進行Ping測試以檢查網站是否正常

    pingTest(websiteDataValues.nextUrl);

}

var isNextUrlReachable = false;

// 從網站獲取下一個Url

function pingTest(websiteUrl) {

    console.log(websiteUrl);

    GM_xmlhttpRequest({

        method: "GET",

        url: websiteUrl,

        headers: {

            "Content-Type": "application/x-www-form-urlencoded"

        },

        timeout: 5000,

        onload: function() {

            // 網站可以訪問

            isNextUrlReachable = true;

        },

        onerror: function() {

            count = count + 1;

            getNextUrl();

        },

        ontimeout: function() {

            count = count + 1;

            getNextUrl();

        },

    });

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值