点一下 Chrome 工具栏图标,就能把当前网页变成二维码。中文界面,二维码生成库随扩展打包,无需构建即可加载。
项目仓库:agent-club/page-qr-extension。下载源码 ZIP 并解压,或运行:
git clone https://github.com/agent-club/page-qr-extension.git官网:页码 Page QR · 隐私政策
-
在 Chrome 地址栏打开
chrome://extensions。 -
打开右上角的「开发者模式」。
-
点击「加载已解压的扩展程序」,选择下载或克隆后的
page-qr-extension目录(其中包含manifest.json)。 -
点击工具栏的扩展程序拼图图标,将「页码 · Page QR」固定到工具栏。
-
打开一个普通网页,点击「页码」图标,当前网址的二维码即会出现。
商店版本尚未提交审核。官网已部署,当前仅维护者可见,公开访问设置待确认;可先下载仓库源码,或使用 GitHub Actions 生成的本地安装包。
安装时无需执行 npm 命令。请保留此目录;Chrome 会从这里读取插件文件。代码更新后,在扩展管理页面点击插件卡片的「重新加载」。卸载时先在扩展管理页面移除插件,再按需要移除这个独立目录。
- 自动生成:打开弹窗就读取当前活动标签页的完整 HTTP/HTTPS 网址,包含查询参数和片段。
- 自定义内容:直接编辑输入框,可使用网址、中文、多行文字和特殊字符;「恢复当前网址」回到打开弹窗时读取的网址。
- 配色:选择前景色和背景色,或输入完整的六位十六进制颜色值,例如
#163D35。低对比度或反色会提示扫码风险,仍允许导出。 - 尺寸:输入 256–2048 之间的任意整数,决定导出图的宽度和高度;预览区保持紧凑大小。
- 导出:下载 PNG 位图或 SVG 矢量图。文件名为
page-qr-尺寸.png或page-qr-尺寸.svg,保存在浏览器配置的下载位置。 - 外观记忆:重新打开弹窗时恢复颜色和尺寸;「重置外观」恢复默认值。
二维码使用 M 级纠错、UTF-8 编码,最大内容为 2331 字节。中文和特殊字符通常占多个字节,输入框下方会显示实际字节数。空白、过长内容、无效颜色和无效尺寸会暂停预览及下载。长内容建议使用更大的导出尺寸;手机扫码效果还会受屏幕、打印和扫码器影响。
Chrome 内部页、新标签页、本地文件等不会自动转换为网址二维码,弹窗会提示手动输入。插件不会将这些地址当作普通网页静默导出。
运行时只使用以下权限:
| 权限 | 用途 |
|---|---|
activeTab |
用户点击插件时,读取当前活动标签页网址 |
storage |
在本机保存 appearance 下的前景色、背景色与尺寸 |
没有主机权限、内容注入脚本或后台服务。插件不保存网址、二维码内容或浏览历史,不使用 Chrome 同步存储。二维码内容仅存在于弹窗内存;用户主动下载的图片会包含对应的二维码。
没有远程二维码服务、远程字体、分析上报或账号系统。内容安全策略设定 connect-src 'none',运行时代码与二维码库均从本地加载。
API 用法已核对 Chrome 官方文档:activeTab、action 弹窗、tabs.query、storage、内容安全策略。Manifest 声明最低 Chrome 102;实际验证的浏览器版本和范围见 验证报告。
Node.js 20 或更新版本用于运行测试;插件使用时不需要 Node.js。
cd /path/to/page-qr-extension
npm ci --ignore-scripts
npm run check
npm test浏览器测试使用独立的临时配置,不访问现有 Chrome 用户数据。需要支持 Extensions.getExtensions 和 Extensions.triggerAction 调试命令的新版 Chromium/Chrome for Testing;本项目已使用 Chrome for Testing 147 验证。
PAGE_QR_BROWSER="/absolute/path/to/Chrome for Testing" npm run test:browserPAGE_QR_BROWSER 应指向浏览器可执行文件;macOS 的路径位于 .app/Contents/MacOS/ 中。也可以通过 npx playwright install chromium 安装 Playwright 默认浏览器,但如果该版本缺少上述实验性调试命令,需要改用新版 Chrome for Testing。调试命令限制仅影响自动化测试,不影响手动加载插件。
测试产物默认写入 .test-artifacts/,浏览器临时配置在测试结束时清理。可用 PAGE_QR_ARTIFACTS 改变产物目录;PAGE_QR_EXTENSION 可指定要加载的实际插件目录。测试覆盖实际工具栏动作、Canvas 预览解码、PNG/SVG 下载回读、离线自定义、偏好保存和相关失败场景。
manifest.json Manifest V3、权限和本地资源入口
popup.html 中文弹窗
popup.css 弹窗样式
popup.mjs 当前标签页、交互、外观保存、下载
qr.mjs 输入校验、UTF-8 二维码、Canvas/SVG 绘制
vendor/qrcode.mjs qrcode-generator 2.0.4,MIT 许可
icons/ 本地图标
tests/ 核心解码测试和真实浏览器测试
VERIFICATION.md 插件验证环境、命令、结果和限制
website/ 官网首页、隐私政策与下载入口源码
store/ Chrome 网上应用店资料、素材与发布流程
scripts/ 运行文件白名单打包脚本
第三方二维码库来自 qrcode-generator,版本固定为 2.0.4。原始版权说明保留在源码内,MIT 许可文本见 vendor/LICENSE.qrcode-generator.txt。jsqr、pngjs、playwright 仅用于开发验证。
运行 npm run package:store 可生成根目录带有 manifest.json 的运行文件 ZIP。需要 Python 3;输出位于 dist/,不会混入官网、测试和开发依赖。GitHub Actions 会运行语法检查、核心测试和打包。
商店条目资料见 store/LISTING.md,版本检查、提审和后续更新流程见 store/RELEASE.md。