当前位置:首页 > JavaScript

js实现复制到剪贴板

2026-02-28 18:17:14JavaScript

原生 JavaScript 实现复制到剪贴板

使用 document.execCommand 方法(兼容旧浏览器,但已逐渐被废弃)

js实现复制到剪贴板

function copyToClipboard(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(需要 HTTPS 环境或 localhost)

js实现复制到剪贴板

async function copyToClipboard(text) {
  try {
    await navigator.clipboard.writeText(text);
    console.log('复制成功');
  } catch (err) {
    console.error('复制失败:', err);
  }
}

处理权限问题

添加用户交互触发(如点击事件),避免浏览器拦截

button.addEventListener('click', async () => {
  try {
    await navigator.clipboard.writeText('要复制的文本');
    alert('复制成功');
  } catch {
    alert('请手动复制');
  }
});

兼容性处理方案

结合新旧 API 的降级方案

function copyToClipboard(text) {
  if (navigator.clipboard) {
    navigator.clipboard.writeText(text).catch(() => {
      fallbackCopy(text);
    });
  } else {
    fallbackCopy(text);
  }
}

function fallbackCopy(text) {
  const textarea = document.createElement('textarea');
  textarea.value = text;
  textarea.style.position = 'fixed';
  document.body.appendChild(textarea);
  textarea.select();

  try {
    document.execCommand('copy');
  } catch (err) {
    console.error('复制失败:', err);
  }

  document.body.removeChild(textarea);
}

注意事项

  • 现代 Clipboard API 需要安全上下文(HTTPS 或 localhost)
  • 某些浏览器可能要求复制操作必须由用户手势(如点击)触发
  • 移动端设备可能有不同的行为表现
  • 始终提供错误处理,考虑复制失败时的备选方案

标签: 剪贴板js
分享给朋友:

相关文章

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: fun…

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span&…