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

Edge Manifest V3扩展:如何在新标签页伪装移动端必应搜索?

解决方案:Edge扩展Manifest V3实现必应移动端搜索伪装

问题分析

你的代码存在几个Manifest V3特有的问题:

  • webRequest的blocking模式只能在Service Worker中运行,无法在普通页面脚本/弹窗脚本里调用
  • 修改User-Agent这类受保护的请求头,需要额外声明extraHeaders权限
  • URL匹配范围太广,且未确保监听器在页面请求前就完成注册

步骤1:更新manifest.json权限

先在manifest.json中添加必要权限,确保扩展能拦截并修改必应的请求头:

{
  "manifest_version": 3,
  "name": "Bing Mobile Spoofer",
  "version": "1.0",
  "permissions": ["webRequest", "webRequestBlocking"],
  "host_permissions": ["https://www.bing.com/*"],
  "background": {
    "service_worker": "background.js"
  },
  "action": {
    "default_popup": "popup.html"
  }
}

步骤2:将UA伪装逻辑移到Service Worker(background.js)

创建background.js,把UA修改逻辑放在这里——Manifest V3中只有Service Worker能使用blocking模式的webRequest:

// background.js
chrome.webRequest.onBeforeSendHeaders.addListener(
  (details) => {
    // 移除原有UA头
    const headerIndex = details.requestHeaders.findIndex(h => h.name.toLowerCase() === 'user-agent');
    if (headerIndex !== -1) {
      details.requestHeaders.splice(headerIndex, 1);
    }
    // 添加移动端UA
    details.requestHeaders.push({
      name: 'User-Agent',
      value: 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Mobile Safari/537.36'
    });
    return { requestHeaders: details.requestHeaders };
  },
  { urls: ["https://www.bing.com/search*"] }, // 精准匹配必应搜索请求
  ["blocking", "requestHeaders", "extraHeaders"] // 必须添加extraHeaders才能修改UA
);

步骤3:修改搜索执行函数

确保搜索函数在扩展上下文(比如弹窗脚本)中运行,无需再调用spoof()函数(逻辑已在Service Worker自动生效):

// popup.js(假设你的搜索函数在弹窗里)
function executeSearchM(searches) {
  for (const searchQuery of searches) {
    // 编码搜索关键词,避免特殊字符破坏URL
    const encodedQuery = encodeURIComponent(searchQuery);
    window.open(`https://www.bing.com/search?q=${encodedQuery}`, '_blank');
  }
}

关键注意事项

  • Service Worker生命周期:确保Service Worker处于激活状态,扩展加载后不要立即关闭触发搜索的弹窗,或可添加监听逻辑保持其活跃
  • UA有效性:如果当前UA失效,可打开浏览器开发者工具的移动端模式,复制最新的移动端UA字符串替换
  • 关键词编码:必须用encodeURIComponent处理搜索关键词,避免空格、特殊字符导致URL错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 23:32:44