当前位置:首页 > JavaScript

js 实现剪切板

2026-04-04 07:35:15JavaScript

实现剪切板功能的方法

方法一:使用 document.execCommand(已废弃但兼容性好)
复制文本到剪切板可以通过已废弃的 document.execCommand 方法实现,部分旧浏览器仍支持:

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,权限更安全:

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

方法三:兼容性兜底方案
结合两种方法,优先使用 Clipboard API,失败时回退到 execCommand

js 实现剪切板

async function copyToClipboard(text) {
  if (navigator.clipboard) {
    try {
      await navigator.clipboard.writeText(text);
      return;
    } catch (err) {}
  }
  const textarea = document.createElement('textarea');
  textarea.value = text;
  document.body.appendChild(textarea);
  textarea.select();
  document.execCommand('copy');
  document.body.removeChild(textarea);
}

注意事项

  • 权限问题:Clipboard API 在 HTTPS 或本地开发环境(localhost)中无需额外权限,其他环境可能触发权限请求。
  • 用户交互:部分浏览器要求复制操作必须由用户触发(如点击事件)。
  • 错误处理:始终捕获 Clipboard API 的错误,避免脚本中断。

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

相关文章

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

js实现继承

js实现继承

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

js实现防洪

js实现防洪

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

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…

js实现筛选

js实现筛选

JavaScript 实现数据筛选的方法 使用 Array.filter() 方法 Array.filter() 是 JavaScript 中最常用的筛选方法,它会创建一个新数组,包含通过回调函数测试…

js实现放大缩小

js实现放大缩小

使用 CSS transform 实现缩放 通过修改元素的 transform 属性实现平滑缩放效果。CSS 的 scale() 函数可以轻松调整元素大小。 const element = docu…