2024-05-12

点击复制

使用 execCommand('copy')

<!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>
  <button id="copy" onclick="copyHandle('copy text')">copy</button>
  <script type="text/javascript">
    function copyHandle(text) {
      // 获取按钮
      let copyText = document.getElementById("copy");
      // 创建 textarea 元素
      let textarea = document.createElement("textarea");
      // 设置 value
      textarea.value = text;
      // 隐藏 textarea
      textarea.style.position = "fixed";
      textarea.style.top = 0;
      textarea.style.left = '-100%';
      // 添加到 body
      document.body.appendChild(textarea);
      // 选中
      textarea.select();
      // 执行复制
      document.execCommand("copy");
      // 去除 textarea
      document.body.removeChild(textarea);
    }
  </script>
</body>
</html>

document.execCommand - Web API 接口参考 | MDN (mozilla.org)

优点:适配广

缺点:

  1. 调用方式繁琐

  2. 此功能已过时。 尽管它在某些浏览器中可能仍然有效,但不鼓励使用它,因为它可能随时被删除。 尽量避免使用它。

使用 Clipboard API

<!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>
  <button id="copy" onclick="copyHandle(683)">copy</button>
  <script type="text/javascript">
    async function copyHandle(text) {
      // 执行
      await navigator.clipboard.writeText(text)
    }
  </script>
</body>
</html>

Clipboard API - Web API 接口参考 | MDN (mozilla.org)

优点:调用方便

缺点:适配范围较窄

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容