当前位置:首页 > JavaScript

js实现复制到剪贴板

2026-04-03 18:44:12JavaScript

实现复制到剪贴板的几种方法

使用 Clipboard API(现代浏览器推荐)

现代浏览器支持 navigator.clipboard.writeText API,代码简洁且安全:

async function copyToClipboard(text) {
  try {
    await navigator.clipboard.writeText(text);
    console.log('内容已复制到剪贴板');
  } catch (err) {
    console.error('复制失败:', err);
  }
}

注意:此API需要HTTPS环境或在localhost下工作,可能需用户授权。

兼容旧浏览器的 document.execCommand 方法

虽然已废弃,但兼容性更广:

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

  try {
    document.execCommand('copy');
    console.log('复制成功');
  } catch (err) {
    console.error('复制失败:', err);
  } finally {
    document.body.removeChild(textarea);
  }
}

使用第三方库

若需要更复杂功能(如富文本复制),可考虑以下库:

特殊场景处理

复制非文本内容(如HTML)时:

js实现复制到剪贴板

function copyHtmlToClipboard(html) {
  const blob = new Blob([html], { type: 'text/html' });
  const clipboardItem = new ClipboardItem({ 'text/html': blob });
  navigator.clipboard.write([clipboardItem]);
}

注意事项

  • 移动端设备可能需要用户手势触发(如click事件)
  • 部分浏览器可能限制自动复制操作以防止滥用
  • 始终提供错误处理以应对权限拒绝等情况

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

相关文章

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Par…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

js实现 功能

js实现 功能

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

js实现上传图片

js实现上传图片

使用HTML5的File API实现图片上传 HTML5的File API允许通过JavaScript访问用户选择的文件。需要创建一个文件输入元素,并监听其change事件。 <input t…

js实现排序

js实现排序

数组排序方法 JavaScript提供了内置的sort()方法用于数组排序。默认情况下,sort()将元素转换为字符串并按照Unicode码点排序。对于数字排序,需传入比较函数。 const num…