当前位置:首页 > JavaScript

js复制文本的实现

2026-01-31 03:44:12JavaScript

JavaScript 复制文本的实现方法

方法一:使用 document.execCommand(兼容旧浏览器)

创建一个临时 textarea 元素,将文本赋值后选中并执行复制命令。适用于较旧浏览器,但已逐渐被新 API 取代。

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(现代浏览器推荐)

js复制文本的实现

通过 navigator.clipboard.writeText 实现异步复制,更安全且支持 Promise。需注意浏览器权限限制(需用户交互触发)。

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

方法三:结合两种方法的兼容方案

js复制文本的实现

先尝试 Clipboard API,失败后降级到 execCommand,确保兼容性。

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

注意事项

  • 现代浏览器可能要求复制操作由用户交互(如点击事件)直接触发。
  • HTTPS 环境下 Clipboard API 更可靠,部分浏览器在 HTTP 限制其使用。
  • 可添加 UI 反馈(如提示“已复制”)提升用户体验。

示例:点击按钮复制

<button onclick="copyText('要复制的文本')">点击复制</button>

标签: 文本js
分享给朋友:

相关文章

js 实现继承

js 实现继承

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

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…