一个基于 Chrome Manifest V3 的本地扩展。它可以持久化保存多套 Header 组,并让不同标签页选择绑定不同的组。
- Header 组持久化保存,可跨标签页复用。
- 内置一个可编辑的“默认组”,但所有新 tab 默认处于未绑定状态。
- 组选择菜单支持拖拽调整自定义组顺序,默认组始终固定在最后。
- 每个标签页可以绑定不同的 Header 组;即使两个标签页打开同一个网址,规则也互不影响。
- 组内每条 Header 都能针对当前标签页独立启用或停用;不会改变其他绑定同一组的标签页。
- 每个标签页可额外添加自己的临时 Header,不会写入或修改 Header 组。
- 临时 Header 与组内 Header 同名时,当前标签页的临时 Header 优先。
- 组内“本页启用”勾选后立即保存,不需要再点击组保存按钮。
- 临时 Header 面板默认折叠,每条临时 Header 只有点击自己的“确认”按钮才会生效。
- 组配置面板默认折叠,“保存组”按钮位于组配置面板内部。
- 组配置支持“另存为新组”,会复制当前编辑内容且不修改原组和页面绑定关系。
- 临时 Header 使用对勾按钮逐条确认并应用。
- 选择组只切换编辑对象,不会自动绑定页面;“保存组”和“绑定页面”是两个独立操作。
- “解绑页面”会让当前 tab 的组 Header 和临时 Header 全部失效,但保留配置以便重新绑定。
- 支持设置或删除请求 Header。
- 可临时停用或解绑当前标签页,不会删除已保存的组或临时 Header 配置。
- 扩展图标角标显示当前标签页生效的 Header 数量。
- 工具栏图标使用镂空 H:页面未绑定时为灰色,绑定 Header 组后自动变为蓝色。
- 标签页关闭后自动清理对应规则。
- 打开
chrome://extensions/。 - 打开右上角的“开发者模式”。
- 点击“加载已解压的扩展程序”。
- 选择本项目目录。
- 切换到需要修改请求的标签页。
- 点击扩展图标,选择默认组或自定义组,再展开默认隐藏的“组配置”。
- 填写组名称、Header 名称和值;每条 Header 左侧开关只决定它是否在当前标签页生效。
- 在组配置内部点击“保存组”只保存组内容;也可点击“另存为新组”复制当前编辑内容。再点击外部的“绑定页面”把当前 tab 绑定到所选组。
- 如有需要,展开默认隐藏的“临时 Header”面板,新增或编辑一行后点击该行“确认”。
- 点击“解绑页面”可立即停止当前 tab 的全部 Header 规则;再次绑定后恢复生效。
- 刷新标签页,让页面重新发起请求。
在组选择菜单中按住自定义组拖动即可调整顺序。默认组不可删除或改名,但可以像普通组一样增删和修改 Header,并始终显示在菜单最后。
Header 组保存在 chrome.storage.local,只包含 Header 的名称、值和操作。标签页绑定保存在 chrome.storage.session,包含组 ID、页面是否绑定、整个页面的启用状态、该标签页停用的 Header ID,以及该标签页独有的临时 Header。解绑只关闭该 tab 的规则,不删除这些数据。绑定使用 tabId 生成 Chrome 会话级动态规则,因此即使多个标签页绑定同一个组,也能选择不同的 Header 启用状态和临时 Header。修改组内容后,扩展会刷新所有已绑定该组的标签页规则。规则仅匹配 http:// 和 https:// 请求。
Chrome 自身限制修改部分受保护的 Header;如果某个 Header 未生效,可在 chrome://extensions/ 的扩展 Service Worker 日志中查看错误。
npm test