JavaScript 点击按钮一键复制指定文本内容

本文讲解如何用 JavaScript 的 navigator.clipboard.writeText() 实现…


生猛大蝦 - medium shot man wearing vr glasses

方法:

navigator.clipboard.writeText('message')

该方法更为简单实用,且兼容性好,废话不多说,直接上代码:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div class="message">这段文本将被复制</div>
    <button class="btn">点击复制</button>
    <script>
      const copyEl = document.querySelector('.message')
      const btnEl = document.querySelector('.btn')

      btnEl.addEventListener('click', () => {
        // 该方法可以写入特定字符串到操作系统的剪切板,并返回一个Promise
        // 一旦剪贴板的内容被更新,它就会被解析。如果调用者没有写入剪贴板的权限,则拒绝写入剪切板(reject)
        navigator.clipboard
          .writeText(copyEl.textContent)
          .then(() => {
            console.log('复制成功')
          })
          .catch(() => {
            console.log('复制失败')
          })
      })
    </script>
  </body>
</html>

该方法可以写入特定字符串到操作系统的剪切板,并返回一个Promise,复制成功调用resolve,复制失败调用reject,比方法一更方便快捷。选他就完事了。

Via. https://www.jianshu.com/p/601f6d4683bd

❓ 延伸问答与排错指南(FAQ)
JavaScript 怎么实现点击按钮复制文本?

最直接的做法是监听按钮 click 事件,在回调里调用 navigator.clipboard.writeText(文本)。它会把字符串写入系统剪贴板,并返回 Promise,成功后进入 then,失败则进入 catch,便于做提示或兜底处理。

navigator.clipboard.writeText 复制的是哪段内容?

它复制的是你传入的字符串。示例里通常会先用 document.querySelector 获取文本元素,再读取 textContent 作为参数传给 writeText,这样就能把页面上指定区域的内容一键复制出去。

复制成功和失败要怎么处理?

writeText 返回 Promise,复制成功时走 resolve,对应 then;如果浏览器权限不足或环境不支持写入剪贴板,则会 reject,对应 catch。实战中建议在这两个分支里分别输出提示,方便用户知道结果。