当前位置:首页 > JavaScript

js 实现复制

2026-02-28 21:31:34JavaScript

使用 document.execCommand

在较旧的浏览器中,可以通过 document.execCommand 方法实现复制功能。创建一个临时的 textareainput 元素,将需要复制的文本赋值给它,选中内容后执行复制命令。

js 实现复制

function copyText(text) {
  const textarea = document.createElement('textarea');
  textarea.value = text;
  document.body.appendChild(textarea);
  textarea.select();
  document.execCommand('copy');
  document.body.removeChild(textarea);
}

使用 Clipboard API

现代浏览器推荐使用 Clipboard API 的 writeText 方法实现复制功能。该方法返回一个 Promise,可以处理复制成功或失败的情况。

js 实现复制

function copyText(text) {
  navigator.clipboard.writeText(text)
    .then(() => {
      console.log('复制成功');
    })
    .catch(err => {
      console.error('复制失败:', err);
    });
}

结合兼容性检查

为了兼容新旧浏览器,可以结合两种方法,先检查 Clipboard API 是否可用,不可用时回退到 document.execCommand

function copyText(text) {
  if (navigator.clipboard) {
    navigator.clipboard.writeText(text)
      .then(() => {
        console.log('复制成功');
      })
      .catch(err => {
        console.error('复制失败,尝试回退方法:', err);
        fallbackCopyText(text);
      });
  } else {
    fallbackCopyText(text);
  }
}

function fallbackCopyText(text) {
  const textarea = document.createElement('textarea');
  textarea.value = text;
  document.body.appendChild(textarea);
  textarea.select();
  try {
    document.execCommand('copy');
    console.log('复制成功');
  } catch (err) {
    console.error('复制失败:', err);
  }
  document.body.removeChild(textarea);
}

复制特定元素内容

如果需要复制页面中某个元素的内容(如 divpre),可以通过获取元素的 textContentinnerText 实现。

function copyElementContent(elementId) {
  const element = document.getElementById(elementId);
  if (element) {
    copyText(element.textContent || element.innerText);
  }
}

注意事项

  • 使用 Clipboard API 时,需确保页面在安全上下文中运行(如 HTTPS 或 localhost)。
  • 某些浏览器可能要求复制操作由用户触发(如点击事件),否则会拒绝访问剪贴板。
  • 对于复杂的富文本内容,可以使用 Clipboard API 的 write 方法复制 HTML 或其他格式数据。

标签: js
分享给朋友:

相关文章

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 // 获取…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…