You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过自动注入JS阻止网站检测标签页/窗口切换?(Chrome MacOS)

实现Chrome自动注入JS阻止站点检测页面离开状态

方法一:使用Tampermonkey脚本管理器(推荐)

这是最便捷的实现方式,无需手动编写扩展,支持灵活配置注入规则:

  • 打开Chrome应用商店,搜索并安装Tampermonkey插件
  • 点击浏览器右上角的Tampermonkey图标,选择「创建新脚本」
  • 删除默认代码,替换为以下内容:
// ==UserScript==
// @name         阻止页面离开检测
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  让站点无法检测页面是否切换标签/窗口
// @author       You
// @match        *://*/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // 拦截visibilitychange事件,阻止站点监听状态变化
    document.addEventListener('visibilitychange', function(e) {
        e.stopImmediatePropagation();
    }, true);

    // 重写visibilityState属性,始终返回'visible'
    Object.defineProperty(document, 'visibilityState', {
        get: () => 'visible',
        configurable: false
    });

    // 重写hidden属性,始终返回false
    Object.defineProperty(document, 'hidden', {
        get: () => false,
        configurable: false
    });

    // 阻止blur事件,避免站点检测到失去焦点
    window.addEventListener('blur', function(e) {
        e.stopImmediatePropagation();
        e.preventDefault();
    }, true);

    // 定时强制页面保持焦点(可选,针对部分依赖焦点检测的站点)
    setInterval(() => {
        if (!document.hasFocus()) {
            window.focus();
        }
    }, 1000);
})();
  • 按Ctrl+S保存脚本,之后所有站点加载时都会自动注入这段代码

方法二:手动创建Chrome扩展(无第三方依赖)

如果不想使用第三方脚本管理器,可以手动编写Chrome扩展实现自动注入:

  1. 在本地创建一个文件夹(例如stay-focused)
  2. 在文件夹内创建manifest.json文件,内容如下:
{
    "manifest_version": 3,
    "name": "阻止页面离开检测",
    "version": "1.0",
    "content_scripts": [
        {
            "matches": ["*://*/*"],
            "js": ["content.js"],
            "run_at": "document_start"
        }
    ]
}
  1. 在同一文件夹内创建content.js文件,内容与Tampermonkey脚本中的核心代码一致:
'use strict';

document.addEventListener('visibilitychange', function(e) {
    e.stopImmediatePropagation();
}, true);

Object.defineProperty(document, 'visibilityState', {
    get: () => 'visible',
    configurable: false
});

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

window.addEventListener('blur', function(e) {
    e.stopImmediatePropagation();
    e.preventDefault();
}, true);

setInterval(() => {
    if (!document.hasFocus()) {
        window.focus();
    }
}, 1000);
  1. 打开Chrome的扩展管理页面(地址栏输入chrome://extensions/),开启「开发者模式」
  2. 点击「加载已解压的扩展程序」,选择刚才创建的stay-focused文件夹即可

注意事项

  • 部分站点可能使用更复杂的检测方式(如Web Worker监听),上述代码可覆盖绝大多数常规场景
  • 定时聚焦的间隔可根据需求调整,过短可能影响系统性能
  • 如果仅需要针对特定站点生效,修改@match(Tampermonkey)或matches(扩展)的规则即可,例如只针对某网站:*://example.com/*

内容的提问来源于stack exchange,提问作者user129393192

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 11:52:40