Skip to Content
Handbook第 5 章:🎯 实战项目开发5.6 实战案例:TabMagnet 插件(进阶)

【实战案例 4】TabMagnet - Chrome 标签管理插件

项目背景

痛点

Chrome 默认行为:新标签总是在最右边打开,切换标签很不方便。

解决方案

TabMagnet:让新标签在当前标签旁边打开。

技术栈

  • Chrome Extension Manifest V3
  • Background Service Worker

完整代码

manifest.json

{ "manifest_version": 3, "name": "TabMagnet", "version": "1.0.0", "description": "让新标签在当前标签旁边打开", "permissions": ["tabs"], "background": { "service_worker": "background.js" }, "icons": { "16": "icon16.png", "48": "icon48.png", "128": "icon128.png" } }

background.js

// 记录最后一个活跃的标签页 ID let lastActiveTabId = null; // 监听标签页激活(用户切换到某个标签) chrome.tabs.onActivated.addListener((activeInfo) => { lastActiveTabId = activeInfo.tabId; }); // 监听标签页创建 chrome.tabs.onCreated.addListener(async (newTab) => { // 如果没有记录的活跃标签,不处理 if (!lastActiveTabId) return; try { // 获取最后活跃标签的信息 const lastTab = await chrome.tabs.get(lastActiveTabId); // 计算新标签应该插入的位置(活跃标签的右边) const newIndex = lastTab.index + 1; // 移动新标签到目标位置 await chrome.tabs.move(newTab.id, { index: newIndex }); console.log(`标签 ${newTab.id} 已移动到位置 ${newIndex}`); } catch (error) { console.error('移动标签失败:', error); } });

安装和测试

  1. 将代码保存到文件夹
  2. 访问 chrome://extensions/
  3. 开启「开发者模式」
  4. 点击「加载已解压的扩展程序」
  5. 选择项目文件夹

测试

  1. 打开多个标签页
  2. 在中间某个标签页上点击链接
  3. 新标签应该在当前标签旁边打开,而不是最右边

成功! 🎉

Last updated on