Greasy Fork is available in English.

网站自动刷新

当前网页如果未打开,则一直监听,直到网站能够直接打开,即不再刷新

// ==UserScript==
// @name         网站自动刷新
// @namespace    https://github.com/webguosai
// @version      0.9
// @icon         https://avatars.githubusercontent.com/u/2083784?v=4
// @description  当前网页如果未打开,则一直监听,直到网站能够直接打开,即不再刷新
// @author       Guo Sai
// @match        http://127.0.0.1:9501/*
// @run-at       document-start
// @grant        none
// @license      GPL-3.0
// ==/UserScript==

(function() {
    'use strict';

    let maxAttempts = 300000; // 最大重试次数
    let currentAttempt = 0; // 当前重试次数

    function refreshIfUnreachable() {
        // console.log('开始执行.');
        currentAttempt++;

        fetch(window.location.href, { method: 'HEAD' })
            .then(response => {
                if (!response.ok) {
                    // console.log(`网站打不开 (${currentAttempt}/${maxAttempts}), refreshing...`);
                    location.reload(true);
                } else {
                    // console.log('停止定时器.');
                    clearInterval(intervalId); // 停止定时器
                }
            })
            .catch(error => {
                // console.error('An error occurred while checking website accessibility:', error);

                if (currentAttempt >= maxAttempts) {
                    // console.log('达到最大重试次数,停止刷新.');
                    clearInterval(intervalId); // 停止定时器
                }
            });
    }

    // 初始化执行,每隔一定时间检查网站的可访问性
    let intervalId = setInterval(refreshIfUnreachable, 300); // 每隔 x 毫秒执行一次检查
})();