当前位置:首页 > 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
分享给朋友:

相关文章

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swip…

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas…

js防抖和节流实现

js防抖和节流实现

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

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…