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

Chrome扩展Manifest V3中Service Worker注册失败:无法读取extensionId

Chrome Manifest V3 扩展Service Worker加载失败问题排查

问题描述

开发Chrome Manifest V3扩展时遇到如下错误:

Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'extensionId')

访问扩展检查页面的Service Worker视图时触发该错误,且当前扩展的Service Worker完全无法工作(其他扩展的Service Worker可正常运行)。

上下文信息

background.js 代码

console.log("Background script loaded.");
const { OpenAI } = require("openai");  

const openai = new OpenAI({
    apiKey: "my_api_key"
});

async function generateResponse(emailContent, style) {
    try {
        const response = await openai.chat.completions.create({
            model: "gpt-3.5-turbo",
            messages: [
                { role: "system", content: `You are a helpful assistant. Respond in a ${style} tone.` },
                { role: "user", content: emailContent },
            ],
        });
        
        return response.choices[0]?.message?.content || "No se pudo generar una respuesta.";
    } catch (error) {
        console.error("Error al contactar con OpenAI:", error);
        return "Hubo un error al contactar con OpenAI.";
    }
}

chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
    console.log("Mensaje recibido en background.js:", message); 
    if (message.type === "generateResponse") {
        console.log("Respuesta generada recibida:", message.response); 
        generateResponse(message.emailContent, message.style)
            .then(response => {
                // Enviar la respuesta generada de vuelta a content.js
                chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
                    chrome.tabs.sendMessage(tabs[0].id, { 
                        type: "generateResponse", 
                        response: response 
                    });
                });
            })
            .catch(err => {
                console.error(err);
                sendResponse("Hubo un error al generar la respuesta.");
            });
    }
});  

manifest.json 配置

{
  "manifest_version": 3,
  "name": "My Extension",
  "version": "1.0",
  "permissions": [
    "activeTab",
    "scripting",
    "storage"
  ],
  "host_permissions": [
    "https://mail.google.com/*",
    "https://api.openai.com/*"
  ],
  "action": {
    "default_popup": "popup.html"
  },
  "background": {
    "service_worker": "background.js"
  },
  "content_scripts": [
    {
      "matches": ["https://mail.google.com/*"],
      "js": ["content.js"]
    }
  ]
}

错误详情

Chrome扩展控制台日志显示:
Service worker registration failed. Status code: 15

已尝试的解决方法

  • 检查background.js的配置逻辑,未发现明显错误
  • 将Chrome浏览器更新至最新版本
  • 禁用其他可能干扰的扩展,问题仍存在
  • 手动排查代码细节,未发现异常逻辑

预期结果

至少能看到background.js中的初始化日志console.log("Background script loaded.")(当前无法看到,但content.js的日志可正常显示),点击按钮时能正常触发相关日志和功能逻辑。

请问有人遇到过类似问题或知晓解决方法吗?恳请帮助!


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 20:38:20