当前位置:首页 > JavaScript

js 实现copy

2026-04-04 12:55:46JavaScript

实现复制功能的几种方法

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

使用现代Clipboard API(推荐)

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

兼容性处理方案

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

function fallbackCopyText(text) {
  const textarea = document.createElement('textarea');
  textarea.value = text;
  document.body.appendChild(textarea);
  textarea.select();

  try {
    document.execCommand('copy');
    console.log('复制成功');
  } catch (err) {
    console.error('复制失败:', err);
  }

  document.body.removeChild(textarea);
}

实际应用示例

为按钮添加复制功能

document.getElementById('copyBtn').addEventListener('click', () => {
  const textToCopy = document.getElementById('textToCopy').value;
  copyText(textToCopy);
});

复制当前页面URL

function copyCurrentURL() {
  copyText(window.location.href);
}

注意事项

Clipboard API需要安全上下文(HTTPS或localhost) 某些浏览器可能要求用户首次交互后才允许访问剪贴板 移动端浏览器可能有不同的实现方式 Safari浏览器对Clipboard API的支持较晚

高级用法

复制HTML内容

async function copyHTML(html) {
  const blob = new Blob([html], {type: 'text/html'});
  const clipboardItem = new ClipboardItem({'text/html': blob});
  await navigator.clipboard.write([clipboardItem]);
}

读取剪贴板内容

js 实现copy

async function pasteText() {
  try {
    const text = await navigator.clipboard.readText();
    console.log('粘贴内容:', text);
    return text;
  } catch (err) {
    console.error('读取剪贴板失败:', err);
  }
}

标签: jscopy
分享给朋友:

相关文章

js实现文件下载

js实现文件下载

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

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js实现求导

js实现求导

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

js实现 功能

js实现 功能

在 JavaScript 中实现功能通常涉及多个关键步骤,具体取决于功能需求。以下是常见功能的实现方法和示例: 基本功能实现 使用函数封装逻辑是最直接的方式。例如,实现一个计算两数之和的函数: f…

js图片上传实现

js图片上传实现

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API实现基础图片上传功能。HTML部分需要设置accept="image/…

js实现按钮点击

js实现按钮点击

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