当前位置:首页 > JavaScript

js实现拷贝

2026-04-03 18:57:29JavaScript

使用 document.execCommand 方法(已废弃但广泛支持)

该方法通过执行 copy 命令实现文本复制,兼容旧版浏览器但已不推荐使用。

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

使用 Clipboard API(现代标准)

通过 navigator.clipboard.writeText() 实现异步复制,需注意 HTTPS 环境或本地开发限制。

js实现拷贝

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

兼容性处理方案

结合两种方法实现降级兼容,优先使用 Clipboard API。

async function copyText(text) {
  if (navigator.clipboard) {
    try {
      await navigator.clipboard.writeText(text);
      return true;
    } catch (err) {
      console.warn('Clipboard API 失败:', err);
    }
  }

  const textarea = document.createElement('textarea');
  textarea.value = text;
  textarea.style.position = 'fixed';
  document.body.appendChild(textarea);
  textarea.select();
  try {
    document.execCommand('copy');
    return true;
  } catch (err) {
    console.warn('execCommand 失败:', err);
    return false;
  } finally {
    document.body.removeChild(textarea);
  }
}

扩展功能:复制 DOM 元素内容

获取指定元素的文本内容并复制。

async function copyElementText(selector) {
  const element = document.querySelector(selector);
  if (element) {
    await copyText(element.textContent || element.innerText);
  }
}

注意事项

  • 现代浏览器要求 HTTPS 环境或 localhost 才能使用 Clipboard API
  • 某些浏览器可能要求复制操作必须由用户手势(如点击事件)触发
  • 考虑添加复制成功/失败的视觉反馈提升用户体验

标签: js
分享给朋友:

相关文章

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 c…