当前位置:首页 > JavaScript

js实现word复制

2026-03-16 07:04:51JavaScript

使用 Clipboard API 实现复制

Clipboard API 是现代浏览器提供的原生 API,允许访问系统剪贴板。通过 navigator.clipboard.writeText() 方法可以直接将文本复制到剪贴板。

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

调用方式:

copyToClipboard('需要复制的文本内容');

使用 document.execCommand 方法(兼容旧版浏览器)

对于不支持 Clipboard API 的旧版浏览器,可以使用 document.execCommand('copy') 方法。需要先创建一个临时的文本区域元素。

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

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

  document.body.removeChild(textarea);
}

复制富文本内容(HTML 格式)

如果需要复制带格式的富文本内容,可以使用 Clipboard API 的 write() 方法。

async function copyRichText(html) {
  const blob = new Blob([html], { type: 'text/html' });
  const clipboardItem = new ClipboardItem({ 'text/html': blob });

  try {
    await navigator.clipboard.write([clipboardItem]);
    console.log('富文本复制成功');
  } catch (err) {
    console.error('富文本复制失败:', err);
  }
}

检测剪贴板权限

某些浏览器可能需要用户授权才能访问剪贴板。可以通过以下代码检查权限状态:

async function checkClipboardPermission() {
  const permissionStatus = await navigator.permissions.query({
    name: 'clipboard-write'
  });

  if (permissionStatus.state === 'granted') {
    console.log('有剪贴板写入权限');
  } else {
    console.log('无剪贴板写入权限');
  }
}

处理复制事件

可以监听元素的复制事件,自定义复制内容:

js实现word复制

document.addEventListener('copy', (e) => {
  e.preventDefault();
  e.clipboardData.setData('text/plain', '自定义复制内容');
  console.log('自定义内容已复制');
});

注意事项

Clipboard API 需要安全上下文(HTTPS 或 localhost) 某些浏览器可能限制剪贴板访问,需要用户交互触发 移动设备上的剪贴板行为可能与桌面端不同 execCommand 方法已逐渐被废弃,建议优先使用 Clipboard API

标签: jsword
分享给朋友:

相关文章

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval 实…

js实现乘

js实现乘

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

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 // 获取所有…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…