Waits until the tab is focused, executing a callback function when it happens.
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-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;
}
});
};