🏠

Greasy Fork is available in English.

visibilityChangeListener

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

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.greasyfork.org/scripts/480373/1283462/visibilityChangeListener.js

提问、发表评价,或者 举报这个脚本
// ==UserScript==
// @name         visibilityChangeListener
// @namespace    http://tampermonkey.net/
// @version      0.2
// @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 (onFocus && currentTime - lastExecutionFocusTime >= minTime) {
onFocus();
lastExecutionFocusTime = currentTime;
}
} else if (onBlur && currentTime - lastExecutionBlurTime >= minTime) {
onBlur();
lastExecutionBlurTime = currentTime;
}
});
};