Greasy Fork is available in English.

onVisibilityChange

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

此腳本不應該直接安裝,它是一個供其他腳本使用的函式庫。欲使用本函式庫,請在腳本 metadata 寫上: // @require https://update.greasyfork.org/scripts/480374/1283358/onVisibilityChange.js

// ==UserScript==
// @name         onVisibilityChange
// @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 onVisibilityChange = (onFocus, onBlur, minTime = 0) => {
    let lastExecutionTime = 0;

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

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

            lastExecutionTime = currentTime;
        });
};