Block websites from knowing if you switched tabs/windows
이 스크립트는 직접 설치하는 용도가 아닙니다. 다른 스크립트에서 메타 지시문 // @require https://update.greasyfork.org/scripts/457405/1133633/Tool%20For%20All%20Website.js을(를) 사용하여 포함하는 라이브러리입니다.
// ==UserScript==
// @name Tool For All Website
// @namespace SuperNova
// @match *://*/*
// @run-at document-start
// @grant GM_xmlhttpRequest
// @version 1.1
// @author Saputra
// @description Block websites from knowing if you switched tabs/windows
// ==/UserScript==
// This userscript blocks the page visibility API and to some extent the old blur/focus APIs.
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" });