Chrom extension 如何监听 tab 关闭? 并提醒用户

8 min read

要监听 Chrome 浏览器中的标签页关闭事件,可以使用 Chrome 的标签页 API。具体步骤如下:

  1. 在 manifest.json 文件中声明使用 tabs 权限:
{
  "name": "My Extension",
  "version": "1.0",
  "manifest_version": 2,
  "permissions": [
    "tabs"
  ],
  "background": {
    "scripts": ["background.js"]
  }
}
  1. 在 background.js 文件中添加一个监听器来监听标签页关闭事件:
chrome.tabs.onRemoved.addListener(function(tabId, removeInfo) {
  // 处理标签页关闭事件
});
  1. 在标签页关闭事件中添加代码来提醒用户:
chrome.tabs.onRemoved.addListener(function(tabId, removeInfo) {
  // 判断用户是否关闭了所有标签页
  chrome.tabs.query({}, function(tabs) {
    if (tabs.length == 0) {
      // 提示用户
      chrome.notifications.create({
        type: "basic",
        title: "提示",
        message: "请不要关闭浏览器,您还有未完成的任务!"
      });
    }
  });
});

以上代码可以在标签页全部关闭时弹出 Chrome 通知来提醒用户不要关闭浏览器。需要注意的是,使用 notifications API 需要在 manifest.json 文件中声明相应的权限,如下所示:

{
  "name": "My Extension",
  "version": "1.0",
  "manifest_version": 2,
  "permissions": [
    "tabs",
    "notifications"
  ],
  "background": {
    "scripts": ["background.js"]
  }
}