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

Chrome扩展Manifest V3下background.js加复杂代码后报Service Worker注册失败

错误原因排查
  • 未定义变量触发运行时崩溃
    background.js中所有chrome.storage.local.get的回调参数为result,但后续取值时全部错写为res,res无任何定义,Service Worker加载时执行代码会直接抛出ReferenceError,直接中断注册流程。
  • 缺少API权限声明
    代码中调用了chrome.alarmsAPI,但manifest.json的permissions字段仅声明了storage,未声明alarms权限。MV3环境下调用未授权的Chrome API会直接抛出权限错误,阻断Service Worker启动。
修复方案

1. 修正manifest.json配置

在permissions数组中补充alarms权限,原配置缩进不影响JSON解析,可按需调整格式:

{
    "manifest_version": 3,
    "name": "Pomodoro Timer",
    "version": "1.0.0",
    "description": "Beta",
    "permissions": ["storage", "alarms"],
    "icons": {
        "16": "icon.png",
        "48": "icon.png",
        "128": "icon.png"
    },
    "action": {
        "default_icon": {
            "16": "icon.png",
            "24": "icon.png",
            "32": "icon.png"            
        },
        "default_title": "TIMER EXTENSION",
        "default_popup": "popup/popup.html"        
    },
    "options_page": "options/options.html",
    "background": {
        "service_worker": "background.js"
    }
}

2. 修正background.js的变量拼写错误

将所有误写的res替换为回调参数result,修复后代码如下:

chrome.alarms.create("Timer", {
  periodInMinutes: 1 / 60,
});

chrome.alarms.onAlarm.addListener((alarm) => {
  if (alarm.name === "Timer") {
    chrome.storage.local.get(["timer", "isRunning"], (result) => {
      if (result.isRunning) {
        let timer = result.timer + 1;
        chrome.storage.local.set({
          timer,
        });
      }
    });
  }
});

chrome.storage.local.get(["timer", "isRunning"], (result) => {
  chrome.storage.local.set({
    timer: "timer" in result ? result.timer : 0,
    isRunning: "isRunning" in result ? result.isRunning : false,
  });
});
后续调试与优化提示
  • 排查Service Worker错误时,可打开chrome://extensions/页面,开启开发者模式后点击扩展卡片中的「Service Worker」入口,直接查看控制台的具体报错栈,定位问题效率更高。
  • 当前设置的periodInMinutes: 1/60(即1秒间隔)可能触发Chrome Alarms API的最小间隔限制,后续若出现alarm触发不规律的问题,可按需调整为合规的周期值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 18:57:01