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

相关文章

vue实现功能

vue实现功能

Vue 实现功能的方法 Vue.js 是一个流行的前端框架,用于构建用户界面。以下是几种常见的功能实现方法: 数据绑定 Vue 提供了双向数据绑定,可以通过 v-model 指令实现表单输入和应用状…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEve…

php实现留言板功能

php实现留言板功能

PHP 留言板功能实现 数据库设计 创建数据库表 messages,包含以下字段: id:自增主键 name:留言者姓名(VARCHAR) email:留言者邮箱(VARCHAR) content…

js防抖和节流实现

js防抖和节流实现

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

php登陆功能实现

php登陆功能实现

实现PHP登录功能 数据库准备 创建一个用户表存储登录信息,基本字段包括用户名、密码(需加密)等: CREATE TABLE users ( id INT AUTO_INCREMENT P…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(…