Anti-Visibility-Detection

Anti Visibility Detection

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         Anti-Visibility-Detection
// @match        *.yuketang.cn/*
// @run-at       document-start
// @description Anti Visibility Detection
// @author EthanDong
// @license MIT

// @version 0.0.1.20251117150128
// @namespace https://greasyfork.org/users/1526411
// ==/UserScript==

(function() {
    // 1. 阻止事件监听
    const blockEvents = ["visibilitychange", "webkitvisibilitychange", "blur", "focusout"];
    blockEvents.forEach(ev => {
        document.addEventListener(ev, e => e.stopImmediatePropagation(), true);
        window.addEventListener(ev, e => e.stopImmediatePropagation(), true);
    });

    // 2. 伪造属性
    Object.defineProperty(document, "visibilityState", {
        get: () => "visible"
    });

    Object.defineProperty(document, "hidden", {
        get: () => false
    });
})();