当前位置:首页 > JavaScript

js实现复制 粘贴功能

2026-01-30 15:53:02JavaScript

使用 Clipboard API 实现复制粘贴

现代浏览器支持 Clipboard API,提供异步访问系统剪贴板的能力。以下是实现方法:

// 复制文本到剪贴板
async function copyText(text) {
  try {
    await navigator.clipboard.writeText(text);
    console.log('文本已复制到剪贴板');
  } catch (err) {
    console.error('复制失败:', err);
  }
}

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

使用 document.execCommand 实现复制(兼容旧浏览器)

对于需要支持旧版浏览器的场景,可以使用已废弃但仍广泛支持的 execCommand 方法:

js实现复制 粘贴功能

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

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

  document.body.removeChild(textarea);
}

监听粘贴事件

处理用户粘贴操作可以通过监听 paste 事件:

js实现复制 粘贴功能

document.addEventListener('paste', (event) => {
  const pastedText = (event.clipboardData || window.clipboardData).getData('text');
  console.log('用户粘贴的内容:', pastedText);
  // 处理粘贴内容
});

安全注意事项

Clipboard API 受浏览器安全策略限制:

  • 需要 HTTPS 环境或 localhost
  • 可能要求用户先与页面交互(如点击按钮)
  • 读取剪贴板内容需要用户明确授权

完整示例代码

<button id="copyBtn">复制文本</button>
<button id="pasteBtn">粘贴文本</button>
<div id="output"></div>

<script>
  document.getElementById('copyBtn').addEventListener('click', async () => {
    await copyText('这是要复制的示例文本');
  });

  document.getElementById('pasteBtn').addEventListener('click', async () => {
    const text = await pasteText();
    document.getElementById('output').textContent = text || '无内容';
  });

  // 使用前面定义的 copyText 和 pasteText 函数
</script>

处理富文本内容

如需复制粘贴富文本内容(如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]);
}

标签: 功能js
分享给朋友:

相关文章

js实现

js实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

vue实现产品使用功能

vue实现产品使用功能

Vue 实现产品功能的关键方法 组件化开发 使用Vue的单文件组件(.vue)将产品功能模块化,每个功能拆分为独立组件。例如产品列表、详情页、购物车等可分别封装为ProductList.vue、Pro…

vue实现后台功能

vue实现后台功能

Vue 实现后台功能的方法 Vue.js 是一个流行的前端框架,适合构建后台管理系统。以下是实现后台功能的常见方法和步骤。 项目初始化 使用 Vue CLI 或 Vite 初始化项目: # Vue…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码 funct…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…