当前位置:首页 > 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实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js实现吸色

js实现吸色

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

js实现上传文件

js实现上传文件

文件上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现文件上传功能。 <input type="file"…

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…