您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Prevents websites from knowing that you switched tabs or unfocused the window
当前为
- // ==UserScript==
- // @name Always on focus
- // @namespace https://github.com/daijro/always-on-focus
- // @author daijro
- // @version 1.2
- // @description Prevents websites from knowing that you switched tabs or unfocused the window
- // @include *
- // @run-at document-start
- // ==/UserScript==
- unsafeWindow.onblur = null;
- unsafeWindow.blurred = false;
- unsafeWindow.document.hasFocus = () => true;
- unsafeWindow.window.onFocus = () => true;
- // kill dom property names
- [
- "hidden",
- "mozHidden",
- "msHidden",
- "webkitHidden"
- ].forEach(prop_name => {
- Object.defineProperty(document, prop_name, {value: false});
- })
- Object.defineProperty(document, "visibilityState", {get: () => "visible", value: "visible"});
- Object.defineProperty(document, "webkitVisibilityState", {get: () => "visible", value: "visible"});
- unsafeWindow.document.onvisibilitychange = undefined;
- var event_handler = (event) => {
- if (event.type === 'blur' && event.target instanceof HTMLInputElement) {
- return // exclude input elements
- }
- event.preventDefault();
- event.stopPropagation();
- event.stopImmediatePropagation();
- }
- // kill event listeners
- [
- "visibilitychange",
- "webkitvisibilitychange",
- "blur",
- "mozvisibilitychange",
- "msvisibilitychange"
- ].forEach(event_name => {
- window.addEventListener(event_name, event_handler, true);
- document.addEventListener(event_name, event_handler, true);
- })