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

如何在Chrome扩展中检测新的Chrome会话启动?

正确检测Chrome新会话启动的方案

1. 明确chrome.runtime.onStartup的触发逻辑

这个监听器触发的是Chrome浏览器完全启动的时刻——即Chrome从无后台进程的关闭状态重新打开时才会触发,而非扩展自身的启动。

2. 修复onStartup不生效的配置问题

你的Manifest V3配置里存在冗余字段:action中的"type": "module",该字段不属于Chrome扩展action的合法配置项,可能导致扩展运行异常,需删除。

修正后的Manifest片段:

"action": {
  "default_icon": "auto_select.png",
  "default_popup": "auto_select.html"
},

3. 正确的代码实现

在你的service worker文件(auto_select.js)中保留chrome.runtime.onStartup监听器即可:

chrome.runtime.onStartup.addListener(async () => {
  console.log("Chrome新会话已启动");
  await chrome.storage.local.set({"status": false});
});

4. 正确的测试步骤

  • 完全退出Chrome:右键任务栏Chrome图标,选择「退出」,确保所有后台进程关闭
  • 重新打开Chrome,此时扩展的service worker会被激活,触发onStartup事件
  • 查看日志:打开chrome://extensions/,找到Auto_Select扩展,点击「服务工作者」下的「检查」按钮,在弹出的控制台中可查看输出日志

5. 为什么chrome.windows.onCreated不适用

这个监听器会在任何新窗口创建时触发,包括用户在Chrome运行过程中手动新建窗口,无法准确区分是Chrome新会话启动还是普通窗口创建,不符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:55:34