visibilityChangeListener

Waits until the tab is focused, executing a callback function when it happens.

目前為 2023-11-20 提交的版本,檢視 最新版本

此腳本不應該直接安裝,它是一個供其他腳本使用的函式庫。欲使用本函式庫,請在腳本 metadata 寫上: // @require https://update.gf.qytechs.cn/scripts/480373/1283459/visibilityChangeListener.js

// ==UserScript==
// @name         visibilityChangeListener
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Waits until the tab is focused, executing a callback function when it happens.
// @author       IgnaV
// @grant        none
// ==/UserScript==

const visibilityChangeListener = (onFocus, onBlur, minTime = 0) => {
    let lastExecutionFocusTime = 0;
    let lastExecutionBlurTime = 0;

    document.addEventListener('visibilitychange', function () {
        const currentTime = Date.now();

        if (document.visibilityState === 'visible') {
            if (currentTime - lastExecutionFocusTime >= minTime) {
                onFocus?.();
                lastExecutionFocusTime = currentTime;
            }
        } else if (currentTime - lastExecutionBlurTime >= minTime) {
            onBlur?.();
            lastExecutionBlurTime = currentTime;
        }
    });
};

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址