您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
阻止 ks.html 页面检测用户是否切换了浏览器标签或窗口。
// ==UserScript== // @name 防止切屏检测 (ks.html) // @namespace http://tampermonkey.net/ // @version 3.0 // @description 阻止 ks.html 页面检测用户是否切换了浏览器标签或窗口。 // @author AI Assistant // @license MIT // @match file:///d:/1122/ks.html // @grant none // @run-at document-start // ==/UserScript== (function() { 'use strict'; // 立即停止事件传播,阻止页面上其他脚本监听到这些事件 const stopEvent = function(e) { e.stopImmediatePropagation(); }; // 在捕获阶段监听事件,确保我们的脚本最先执行 window.addEventListener('blur', stopEvent, true); window.addEventListener('focusout', stopEvent, true); document.addEventListener('visibilitychange', stopEvent, true); // 伪装 document 的可见性状态,使其一直为 'visible' try { Object.defineProperty(document, 'visibilityState', { value: 'visible', writable: false, configurable: true }); } catch (e) { console.log('Failed to redefine visibilityState', e); } // 伪装 document.hidden 属性,使其一直为 false try { Object.defineProperty(document, 'hidden', { value: false, writable: false, configurable: true }); } catch (e) { console.log('Failed to redefine hidden', e); } // 覆盖旧版浏览器可能使用带前缀的属性 ['webkit', 'moz', 'ms'].forEach(prefix => { const propVisibility = prefix + 'VisibilityState'; const propHidden = prefix + 'Hidden'; try { Object.defineProperty(document, propVisibility, { value: 'visible', writable: false, configurable: true }); } catch (e) {} try { Object.defineProperty(document, propHidden, { value: false, writable: false, configurable: true }); } catch (e) {} }); })();