当前位置:首页 > 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 实现拷贝功能,兼容性更好且更安全。示例代码如下:

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

拷贝富文本内容

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

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 事件来自定义拷贝行为:

js实现拷贝

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

注意事项

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

标签: js
分享给朋友:

相关文章

js实现轮播图

js实现轮播图

轮播图实现方法 基础HTML结构 <div class="slider"> <div class="slides"> <img src="image1.jpg…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js实现求导

js实现求导

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