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

如何实现浏览器扩展自动重定向NSFW等特定网址到指定链接

NSFW站点跳转彩蛋实现方案

核心逻辑拆成「NSFW站点识别」和「拦截重定向」两部分,基于Chromium系/Firefox通用的WebExtension标准API实现即可,优先选Manifest V3框架开发,兼容目前所有主流浏览器新版本。

1. 扩展基础权限配置

先在manifest.json里配好必要权限,别申请多余权限避免被浏览器商店下架:

  • 必选declarativeNetRequest权限:这是MV3里性能最好的请求拦截API,在页面发起请求阶段就可以触发重定向,不会出现原页面闪一下再跳的问题,比老版webRequest更省资源
  • 必选主机权限:配置<all_urls>匹配范围,才能覆盖所有用户访问的站点
  • 可选storage权限:用来存用户自定义白名单、功能开关状态
    基础配置示例:
{
  "manifest_version": 3,
  "name": "Sam的健康上网提醒",
  "version": "1.0",
  "permissions": ["declarativeNetRequest", "storage"],
  "host_permissions": ["<all_urls>"],
  "background": {
    "service_worker": "background.js"
  }
}

2. NSFW站点识别方案

按实现成本从低到高选择,推荐前两种组合使用,准确率足够还不侵犯用户隐私:

  • 本地域名黑名单匹配:直接把开源社区维护的NSFW域名列表打包进扩展本地存储,不用发起外部请求,匹配速度极快,隐私性好;缺点是新出现的站点可能漏判,每次扩展更新的时候同步更新黑名单即可
  • 页面特征补判:对不在黑名单里的站点,注入轻量内容脚本,扫描页面meta标签(比如很多成人站会带rating=adult的meta标记)、成人关键词密度、首屏违规内容占比,命中预设阈值就判定为NSFW站点,能覆盖大部分黑名单没收录的新站
  • 进阶AI识别:如果要更高准确率,可以打包TensorFlow.js的轻量NSFW图片分类模型到本地,识别页面首屏图片内容,缺点是扩展包体积会增加几MB,纯彩蛋功能没必要上这么重的逻辑
    注意:不要调用第三方在线NSFW检测接口,会泄露用户全部浏览记录,既违反隐私规范,也容易拖慢页面加载速度

3. 重定向逻辑实现

优先用declarativeNetRequest做拦截,体验最流畅:

  • 规则只匹配main_frame类型的请求,也就是只拦截主页面导航,别误拦页面里的图片、脚本、接口请求
  • 把识别到的NSFW域名批量加到规则的匹配域里,触发动作直接配置为重定向到你准备的Jetstream Sam梗图地址
  • 加个功能总开关,默认可以开启,但要让用户能随时关掉;同时加本地白名单,用户标记为误判的站点永久跳过拦截
    后台Service Worker里的规则配置示例:
// 从本地存储拉取NSFW域名列表、白名单列表
async function updateRedirectRule() {
  const { nsfwDomains = [], whiteList = [] } = await chrome.storage.local.get(["nsfwDomains", "whiteList"]);
  const matchDomains = nsfwDomains.filter(domain => !whiteList.includes(domain));
  
  const rule = {
    id: 1001,
    priority: 1,
    action: {
      type: "redirect",
      redirect: { url: "你准备的Jetstream Sam梗图本地/直链地址" }
    },
    condition: {
      requestDomains: matchDomains,
      resourceTypes: ["main_frame"]
    }
  };

  await chrome.declarativeNetRequest.updateDynamicRules({
    removeRuleIds: [1001],
    addRules: matchDomains.length ? [rule] : []
  });
}

// 扩展启动、存储配置更新的时候刷新规则
chrome.runtime.onInstalled.addListener(updateRedirectRule);
chrome.storage.onChanged.addListener(updateRedirectRule);

如果需要配合内容脚本的页面特征判定逻辑,可以在内容脚本确认站点为NSFW后,给后台发消息,临时把该域名加入重定向规则;或者直接调用chrome.tabs.update跳转到梗图页面,后者会有微小的原页面闪烁,体验稍差。

4. 体验优化小细节

  • 加个误判兜底:触发重定向后在梗图页面加个5秒可点击的返回按钮,用户点了就自动把对应域名加入白名单,跳回原页面
  • 彩蛋别太生硬,跳转的时候可以加个极短的淡出过渡,想玩梗的话可以默认关闭、让用户手动开启Sam的经典台词音效,避免公共场合社死
  • 别做强制无法跳过的跳转,不然用户会直接卸载扩展

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 00:33:21