当前位置:首页 > 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() 实现,需注意浏览器权限(通常需用户触发事件如点击):

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
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

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

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="sli…

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式系…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。…

js手势实现

js手势实现

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