当前位置:首页 > JavaScript

js实现拷贝

2026-02-28 18:30:39JavaScript

实现文本拷贝

使用 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

现代浏览器推荐使用 Clipboard API 实现拷贝功能,兼容性更好且更安全。示例代码如下:

js实现拷贝

async function copyText(text) {
  try {
    await navigator.clipboard.writeText(text);
    console.log('文本已成功拷贝');
  } catch (err) {
    console.error('拷贝失败:', err);
  }
}

拷贝富文本内容

如需拷贝带格式的 HTML 内容,可以使用 Clipboard API 的 write 方法:

js实现拷贝

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

处理无 Clipboard API 的情况

在不支持 Clipboard API 的浏览器中,可以回退到 execCommand 方法:

async function copyTextFallback(text) {
  if (!navigator.clipboard) {
    copyText(text);
    return;
  }
  try {
    await navigator.clipboard.writeText(text);
  } catch (err) {
    console.error('拷贝失败:', err);
  }
}

监听拷贝事件

可以通过监听 copy 事件来自定义拷贝行为:

document.addEventListener('copy', (e) => {
  e.clipboardData.setData('text/plain', '自定义拷贝内容');
  e.preventDefault();
});

注意事项

  • 使用 Clipboard API 需要在安全上下文中(HTTPS 或 localhost)
  • 某些浏览器可能需要用户手势触发拷贝操作
  • 移动端浏览器对 Clipboard API 的支持可能有限

标签: js
分享给朋友:

相关文章

js实现vr

js实现vr

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

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js实现图片

js实现图片

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

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…

js实现滑动

js实现滑动

实现滑动效果的方法 在JavaScript中实现滑动效果可以通过多种方式完成,以下是几种常见的实现方法: 使用CSS过渡和JavaScript触发 通过CSS定义过渡效果,JavaScript控制触…

js实现按钮点击

js实现按钮点击

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