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

Manifest V3浏览器扩展读取指定网页Cookie失败,Service Worker未加载

问题分析与修复方案

1. 修正Manifest.json配置

Manifest V3中访问Cookie必须同时配置cookies权限和host_permissions,且需明确指定目标网站域名。修正后的配置如下:

{
  "manifest_version": 3,
  "name": "Management Extension",
  "short_name": "Management",
  "version": "1",
  "description": "A management tool",
  "permissions": ["cookies"],
  "host_permissions": ["https://your-target-domain.com/*"], // 替换为你的目标网页域名
  "background": {
    "service_worker": "background.js"
  },
  "action": {
    "default_popup": "index.html"
  }
}

若需适配多个特定网站,可在host_permissions数组中添加多个域名,例如["https://a.com/*", "https://b.com/*"]。

2. 修复Popup脚本逻辑

当前脚本存在三处核心问题:chrome.extension.getBackgroundPage()在V3中已废弃、window.location.href获取的是Popup自身URL而非目标网页URL、异步逻辑处理不当。以下是修正后的Popup脚本(假设为popup.js,需在index.html中引入):

// 获取当前激活标签页的URL
async function getCurrentTabUrl() {
  const [tab] = await chrome.tabs.query({ active: true, currentWindow: true });
  return tab.url;
}

// 获取指定名称的Cookie
async function getCookies(name) {
  const url = await getCurrentTabUrl();
  try {
    const cookies = await chrome.cookies.getAll({ url, name });
    console.log("获取到的Cookie:", cookies);
    // 可在此添加Cookie展示或其他处理逻辑
  } catch (error) {
    console.error("获取Cookie失败:", error);
  }
}

// DOM加载完成后绑定按钮事件
document.addEventListener("DOMContentLoaded", async function () {
  const loadCookiesBtn = document.getElementById("load_cookies");
  loadCookiesBtn.addEventListener("click", () => getCookies("csrftoken"));

  // 可选:Popup加载时自动获取一次Cookie
  await getCookies("csrftoken");
});

3. 解决Service Worker未加载问题

V3的Service Worker是事件驱动的,若background.js为空或无事件监听,浏览器会自动回收它。即使不需要后台逻辑,也建议添加基础事件监听以维持激活状态:

// background.js
chrome.runtime.onInstalled.addListener(() => {
  console.log("扩展已安装");
});

若无需后台处理逻辑,可直接移除background配置;后续若需后台功能,再补充对应事件监听即可。

4. 调试技巧

  • 查看Service Worker日志:在扩展管理页(chrome://extensions/)找到你的扩展,点击"Service Worker"下的"检查"按钮,打开DevTools查看日志。
  • 查看Popup日志:打开Popup后右键选择"检查",通过DevTools控制台查看输出。
  • 权限验证:在扩展管理页的"权限"选项中,确认cookies和目标网站权限已正确授予。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:15:28