您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
10/4/2023, 5:07:06 PM
// ==UserScript== // @name PreventPageVisibilityAuto // @namespace PreventPageVisibilityAuto // @match *://*/* // @run-at document-start // @grant GM_getValue // @grant GM_setValue // @grant GM_addStyle // @grant GM_registerMenuCommand // @version 1.1 // @author - // @description 10/4/2023, 5:07:06 PM // ==/UserScript== var defaultvalue = 'none'; var name = 'PreventPageVisibilityAuto'; var prefix = "autoinject" + name; var value = GM_getValue("value" + name + document.domain, defaultvalue); console.log(value); var injectedStatus = false; var hostarray = []; function inject() { //if (window.self !== window.top) return; // Not in frames if (injectedStatus !== false) return; // Not if already injected let events_to_block = [ "visibilitychange", "webkitvisibilitychange", "mozvisibilitychange", "hasFocus", "blur", "focus", "mouseleave" ] for (event_name of events_to_block) { document.addEventListener(event_name, function (event) { event.preventDefault(); event.stopPropagation(); event.stopImmediatePropagation(); }, true); } for (event_name of events_to_block) { window.addEventListener(event_name, function (event) { event.preventDefault(); event.stopPropagation(); event.stopImmediatePropagation(); }, true); } document.hasFocus = function () { return true; }; document["onvisibilitychange"] = null; Object.defineProperty(document, "visibilityState", { value: "visible" }); Object.defineProperty(document, "hidden", { value: false }); Object.defineProperty(document, "mozHidden", { value: false }); Object.defineProperty(document, "webkitHidden", { value: false }); Object.defineProperty(document, "webkitVisibilityState", { value: "visible" }); injectedStatus = true; } function addHost() { hostarray.push(location.hostname); GM_setValue(prefix, JSON.stringify(hostarray)); if (injectedStatus == false) inject; } function set() { var val = window.prompt("Enter " + name + document.domain + " value", defaultvalue); val = parseInt(val); if (val == undefined) { return false; } GM_setValue("value" + name + document.domain, val); } function plus() { var value = GM_getValue("value" + name + document.domain, defaultvalue); GM_setValue("value" + name + document.domain, value + 1); } function minus() { var value = GM_getValue("value" + name + document.domain, defaultvalue); GM_setValue("value" + name + document.domain, value - 1); } function removeHost() { var index = hostarray.indexOf(location.hostname); if (index > -1) { hostarray.splice(index, 1); GM_setValue(prefix, JSON.stringify(hostarray)); } } // This should work in Violentmonkey and Tampermonkey, but unfortunately not Greasemonkey. try { hostarray = JSON.parse(GM_getValue(prefix, "[]")); if (typeof (value) == 'number') { GM_registerMenuCommand("+", plus); GM_registerMenuCommand("-", minus); } GM_registerMenuCommand("Set " + name, set); if (hostarray.includes(location.hostname)) { inject(); injectedStatus = true; GM_registerMenuCommand("Stop Auto-Injecting " + name, removeHost); } else { GM_registerMenuCommand("Inject " + name, inject); GM_registerMenuCommand("Auto-Inject on " + location.hostname, addHost); } } catch (err) { console.log("Error adding Inject menu items: " + name); console.log(err); }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址