当前位置:首页 > 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(现代推荐方式)

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

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

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

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 某些版本需要特殊处理
  • 错误处理很重要,部分浏览器会限制剪贴板访问
  • 移动端设备可能需要额外适配

扩展功能实现

js 复制实现

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

相关文章

jquery js

jquery js

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

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似: func…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…

js实现按钮点击

js实现按钮点击

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

js实现原理

js实现原理

JavaScript 实现原理 JavaScript 是一种解释型语言,其实现原理涉及多个核心组件和运行机制,包括引擎、运行时环境、事件循环等。 引擎与解释执行 现代 JavaScript 引擎(如…

js 实现页面刷新

js 实现页面刷新

使用 location.reload() location.reload() 是原生 JavaScript 提供的页面刷新方法。调用该方法会重新加载当前页面,相当于点击浏览器的刷新按钮。 // 基本…