当前位置:首页 > JavaScript

js 复制实现

2026-04-06 01:07:42JavaScript

JavaScript 复制实现方法

方法1:使用 document.execCommand(已废弃但仍可用)

function copyText(text) {
  const textarea = document.createElement('textarea');
  textarea.value = text;
  document.body.appendChild(textarea);
  textarea.select();
  document.execCommand('copy');
  document.body.removeChild(textarea);
}

该方法兼容旧浏览器,但已被现代标准标记为废弃。

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

js 复制实现

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

需要 HTTPS 环境或 localhost 才能正常工作,返回 Promise 对象。

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

js 复制实现

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

  const textarea = document.createElement('textarea');
  textarea.value = text;
  textarea.style.position = 'fixed';
  document.body.appendChild(textarea);
  textarea.select();

  try {
    const success = document.execCommand('copy');
    document.body.removeChild(textarea);
    return success;
  } catch (err) {
    document.body.removeChild(textarea);
    return false;
  }
}

注意事项

  • 现代浏览器要求复制操作必须由用户手势(如点击事件)触发
  • Safari 某些版本需要特殊处理
  • 错误处理很重要,部分浏览器会限制剪贴板访问
  • 移动端设备可能需要额外适配

扩展功能实现

// 复制DOM元素内容
function copyElementContent(selector) {
  const el = document.querySelector(selector);
  if (el) copyText(el.textContent || el.value);
}

// 带格式的HTML复制
async function copyHTML(html) {
  const blob = new Blob([html], {type: 'text/html'});
  const item = new ClipboardItem({'text/html': blob});
  await navigator.clipboard.write([item]);
}

以上方法可根据实际需求选择使用,推荐优先尝试 Clipboard API,再降级到传统方法。

标签: js
分享给朋友:

相关文章

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let co…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码…