当前位置:首页 > JavaScript

js实现复制

2026-02-28 17:20:59JavaScript

使用 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);
}

// 调用示例
copyText('需要复制的文本');

使用 Clipboard API(现代推荐方式)

通过 navigator.clipboard.writeText() 实现,需注意浏览器权限(通常需用户触发事件如点击):

js实现复制

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

// 调用示例(需在用户交互事件中触发)
button.addEventListener('click', () => copyText('Hello'));

兼容性处理方案

结合两种方法,优先尝试 Clipboard API,失败后降级到传统方法:

async function copyText(text) {
  try {
    if (navigator.clipboard) {
      await navigator.clipboard.writeText(text);
    } else {
      const textarea = document.createElement('textarea');
      textarea.value = text;
      document.body.appendChild(textarea);
      textarea.select();
      document.execCommand('copy');
      document.body.removeChild(textarea);
    }
    console.log('复制成功');
  } catch (err) {
    console.error('复制失败:', err);
  }
}

注意事项

  • 用户交互触发:大多数浏览器要求复制操作由用户点击等手势触发,否则可能被阻止。
  • HTTPS 环境:Clipboard API 在部分浏览器中仅限安全上下文(HTTPS)。
  • 错误处理:捕获并处理权限拒绝等异常情况。

标签: js
分享给朋友:

相关文章

js 实现vue

js 实现vue

实现 Vue 的核心功能 在 JavaScript 中实现 Vue 的核心功能需要模拟数据绑定、虚拟 DOM 和响应式系统。以下是一个简化版的实现思路: 响应式系统 通过 Object.define…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 使用JavaScript实现拖拽功能需要监听鼠标事件,包括mousedown、mousemove和mouseup。以下是实现的基本逻辑: const draggableEleme…

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Promise…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现列表

js实现列表

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

js节流实现

js节流实现

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