当前位置:首页 > JavaScript

js 实现复制

2026-02-28 21:31:34JavaScript

使用 document.execCommand

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

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,可以处理复制成功或失败的情况。

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 实现。

js 实现复制

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实现跳转

使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 // 方…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似: func…

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数: fun…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…

js实现 功能

js实现 功能

在 JavaScript 中实现功能通常涉及多个关键步骤,具体取决于功能需求。以下是常见功能的实现方法和示例: 基本功能实现 使用函数封装逻辑是最直接的方式。例如,实现一个计算两数之和的函数: f…