现代标准方式是使用 Clipboard API,它提供异步、基于 Promise 的接口,需用户交互触发且仅在安全上下文中可用;支持 writeText/readText 处理文本,write/read 操作富文本或图片,并受权限与浏览器兼容性限制。
JavaScript 中实现复制粘贴,现代标准方式是使用 Clipboard API,它提供异步、基于 Promise 的接口,取代了过去依赖 document.execCommand("copy") 的老旧方法。该 API 需要用户交互(如点击)触发,且仅在安全上下文(HTTPS 或 localhost)中可用。
调用 navigator.clipboard.writeText() 可将字符串写入系统剪贴板:
click、keydown)回调中调用,否则会被浏览器拒绝用 navigator.clipboard.rea 获取当前剪贴板中的纯文本:
dText()
readText() 支持有限,建议加 try/catch 并提供降级提示Clipboard API 还支持更复杂的数据类型,通过 write() 和 read() 方法操作 ClipboardItem:
write() 接收 ClipboardItem 数组,可同时写入多种格式(如 text/plain + image/png)read() 返回 ClipboardItem 数组,需遍历其 types 并用 getType() 提取对应 blobClipboard API 的行为受浏览器策略严格约束:
clipboard-read 或 clipboard-write),用户可拒绝navigator.permissions.query({ name: 'clipboard-write' }) 预检权限状态writeText 和 readText,但 read() 仍受限execCommand 方案(创建临时 textarea,选中后执行),但该方式已被标记为废弃