「粘贴读取」是通用兜底方案,任何浏览器都能用。
| 浏览器 | 按钮读取 | 粘贴读取 | 写入 | 说明 |
|---|---|---|---|---|
| Chrome / Edge | ✅ 支持 | ✅ 支持 | ✅ 支持 | 功能最全,首次读取会弹授权 |
| Safari | ⚠️ 部分 | ✅ 支持 | ✅ 支持 | 读取受限,建议用粘贴方式 |
| Firefox | ❌ 不支持 | ✅ 支持 | ✅ 支持 | clipboard.read() 未实现,只能靠粘贴 |
| 手机浏览器 | ⚠️ 受限 | ✅ 支持 | ✅ 支持 | 系统剪贴板权限分散,粘贴最稳 |
⚠️ 使用提示:① 剪贴板里可能包含密码、令牌、身份证号等敏感内容,使用前请确认当前环境安全(旁边没人、屏幕不共享);② 「按钮读取」需要你授权,且页面必须在前台——切走再回来浏览器会拒绝;③ 本工具不会上传剪贴板内容,但浏览器插件、企业管控软件仍可能读取页面,处理敏感内容请用离线方式;④ 「清空剪贴板」只是写入一个空字符串,不能保证抹掉系统剪贴板历史(部分系统会保留历史记录);⑤ 从网页复制的内容常同时带有 纯文本 + HTML + 图片 多种格式,粘贴到不同程序时结果不同,这是正常的。
「我从网页复制了一段表格,粘到 Word 里格式全乱了」「这张图复制出来到底是图还是链接」「刚才复制的内容还在不在」——这些问题的答案,都藏在剪贴板里,但系统从不给你看。
这个工具把剪贴板摊开:
① 同时看到多种格式:一次复制往往会同时写入纯文本、HTML 源码、图片好几种格式,粘贴到不同程序时取用的是其中一种——这里能全部看到,你就能明白为什么「粘到记事本是文字、粘到 Word 是表格」;
② 图片直接预览:显示尺寸、类型、体积,还能下载下来;
③ 文件列表:复制文件时会看到文件名、类型、大小;
④ HTML 源码:想搞清楚复制的样式为什么乱,看源码最直接;
⑤ 也能写入和清空:放一段常用文本进去,或一键清掉剪贴板。
所有解析都在本地页面内完成,不联网、不上传、不记录。
怎么实现:
① 主路径:`navigator.clipboard.read()` 返回 `ClipboardItem` 数组,遍历 `item.types` 再逐个 `getType(type)` 拿到 Blob,按类型分别处理;
② 降级路径:监听 `paste` 事件,从 `event.clipboardData.items` 里取同样的数据。这条路在所有浏览器都能用,因为「用户主动粘贴」本身就是明确授权,不需要额外权限;
③ 图片预览:用 `URL.createObjectURL(blob)` 生成临时地址塞进 `<img>`,等图片 `onload` 后读出 `naturalWidth / naturalHeight` 得到真实尺寸,用完 `revokeObjectURL` 回收;
④ 写入:`navigator.clipboard.writeText()`,失败时降级到 `document.execCommand('copy')`;
⑤ 清空:写入一个空字符串。注意这不等于抹除系统剪贴板历史;
⑥ 权限差异:Chrome 首次 `read()` 会弹授权且要求页面在前台;Firefox 至今没实现 `read()`;Safari 限制较多——所以粘贴降级不是「备选」,而是实际的主力方案。
它不做:不监听剪贴板变化、不做自动轮询、不保存历史、不上传任何内容。
navigator.clipboard.read())读取剪贴板中的文本 / HTML / 图片 / 文件四类内容,并用 paste 事件做全浏览器降级(Firefox 无 read()、Safari 受限时的主力方案);图片走 createObjectURL 预览并读出真实尺寸、支持下载;同时提供写入文本与清空剪贴板(writeText + execCommand 降级)。内置各浏览器支持情况对照表。纯本地零依赖,适配黑夜模式。
clipboard.read(),Safari 也限制较多;审核通过后就会展示在留言板上,稍安勿躁~
还没有留言,来抢沙发吧!