README.md
超链新标签页打开
一款 Chrome 扩展,强制页面内所有超链接在新标签页中打开,并提供随时开关的开关按钮。
功能特性
- 全局生效:拦截页面中所有
<a>链接的左键点击,改为新标签页打开。 - 一键开关:点击工具栏图标,通过开关随时启用或停用,状态实时同步到所有页面。
- 图标反馈:开启 / 关闭状态由工具栏图标直观呈现。
- 智能跳过,以下情况保持浏览器默认行为,不做干预:
- 页内锚点(
#...) javascript:/mailto:/tel:/sms:/blob:/data:等特殊协议- 带
download属性的下载链接 - 已设置
target="_blank"的链接 - 按住
Ctrl/Cmd/Shift/Alt或使用鼠标中键、右键的点击
- 页内锚点(
- 兼容性强:通过
composedPath()支持 Shadow DOM 与<svg>内部链接。 - 安全打开:使用
noopener,noreferrer打开新页面,防止新标签页通过window.opener反向操作原页面。
安装方法(开发者模式)
- 打开 Chrome,地址栏输入
chrome://extensions回车。 - 打开右上角的 开发者模式。
- 点击 加载已解压的扩展程序。
- 选择本扩展所在的文件夹(包含
manifest.json的目录)。 - 安装完成,工具栏出现扩展图标即可使用。
使用说明
- 安装后默认开启,此后浏览网页时点击任意链接都会在新标签页打开。
- 点击工具栏图标弹出面板,拨动开关即可启用或关闭。
- 关闭后链接恢复浏览器默认打开方式,图标同步切换为“关闭”样式。
文件结构
| 文件 | 说明 |
|---|---|
manifest.json |
扩展清单(Manifest V3),声明权限、图标、脚本入口 |
content.js |
内容脚本,document_start 注入所有页面,拦截链接点击 |
background.js |
后台服务 worker,维护开关状态并同步工具栏图标 |
popup.html |
工具栏弹出窗口界面 |
popup.js |
弹窗逻辑,读取 / 写入开关状态 |
icon48*.png / icon128*.png |
开启与关闭两种状态的图标 |
工作原理
内容脚本在捕获阶段监听 click 事件,从事件路径向上查找最近的 <a> 元素。若命中且不属于“智能跳过”的情况,则阻止默认行为并调用 window.open(url, "_blank", "noopener,noreferrer")。
开关状态保存在 chrome.storage.local 中,通过 chrome.storage.onChanged 在内容脚本、后台与弹窗之间实时同步,确保切换即时生效、无需刷新页面。
权限说明
本扩展仅申请 storage 权限,用于保存开关状态。不收集、不上传任何浏览数据。
版本
当前版本:1.2.0
版权
作者:白逸 | 官网:imxcy.cn
Copyright (c) 白逸. All rights reserved.