如何用 JavaScript 复制到剪贴板

本文详细介绍了JavaScript中复制文本到剪贴板的三种主要API:异步剪贴板API、已弃用的旧方法以及覆盖复制事件。重点讲解了异步API的特性和使用示例,强调了开发时的注意事项,如HTTPS要求和用户交互需求。同时,提供了回退示例以确保兼容性。
摘要由CSDN通过智能技术生成

在开发网页应用时,很多时候都会遇到需要动态复制文本到剪贴板的需求。JavaScript 提供了几种不同的方法来实现这一功能,本文将详细介绍这些方法及其使用场景。

浏览器提供的三种主要 API

目前,主流浏览器提供了以下三种主要的 API 来复制文本到剪贴板:

1. 异步剪贴板 API

异步剪贴板 API 是最现代化的方案,使用 navigator.clipboard.writeText() 方法。

特点:
  • Chrome 66 (2018 年 3 月发布) 起支持。
  • API 是异步的,使用 JavaScript 的 Promise,安全提示不会中断页面中的 JavaScript。
  • 可以直接将变量中的文本复制到剪贴板。
  • 仅支持在通过 HTTPS 服务的页面上使用。
  • 在 Chrome 66 中,即使页面在后台标签页面,也可以复制到剪贴板而不需要权限提示。

使用示例:

navigator.clipboard.writeText("要复制的文本").then(() => {
   
  console.log('复制成功!');
}).catch(err => {
   
  console.error('复制失败:', err);
});

2. document.execCommand('copy') (已弃用)

特点:
  • 大多数浏览器在 2015 年 4 月前后开始支持。
  • 访问是同步的,会中断页面中的 JavaScript,直到完成,包括用户交互的安全提示。
  • 文本从 DOM 中读取并放入剪贴板。
  • 测试期间(2015 年 4 月左右)只有 Internet Explorer 显示权限提示时在写入剪贴板。

虽然已经被弃用,但为了兼容性,有时仍会用到此方法。使用示例:

function fallbackCopyTextToClipboard(text) {
   
  var textArea = document.createElement(
  • 16
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JKooll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值