当前位置:首页 > JavaScript

js复制文本的实现

2026-03-01 18:51:16JavaScript

js复制文本的实现

js复制文本的实现

JavaScript 复制文本的实现方法

使用 Clipboard API(现代浏览器推荐)

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

调用方式:

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

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

function copyTextFallback(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);
}

综合解决方案

function copyText(text) {
  if (navigator.clipboard) {
    return navigator.clipboard.writeText(text).catch(() => {
      copyTextFallback(text);
    });
  } else {
    copyTextFallback(text);
  }
}

注意事项

  • 某些浏览器可能要求在用户交互事件(如点击)中触发复制操作
  • Safari 浏览器对剪贴板访问有特殊限制
  • HTTPS 环境下 Clipboard API 更可靠
  • 考虑添加复制成功/失败的UI反馈

示例:按钮点击复制

<button onclick="copyText('示例文本')">复制文本</button>
<p id="status"></p>

<script>
function copyText(text) {
  navigator.clipboard.writeText(text)
    .then(() => {
      document.getElementById('status').textContent = '复制成功!';
    })
    .catch(err => {
      document.getElementById('status').textContent = '复制失败: ' + err;
    });
}
</script>

高级功能扩展

// 复制当前页面URL
function copyCurrentURL() {
  copyText(window.location.href);
}

// 复制特定元素内容
function copyElementText(id) {
  const text = document.getElementById(id).innerText;
  copyText(text);
}

标签: 文本js
分享给朋友:

相关文章

js实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现防洪

js实现防洪

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

js实现vue路由

js实现vue路由

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

js实现显示隐藏

js实现显示隐藏

显示隐藏的实现方法 在JavaScript中,实现元素的显示和隐藏可以通过多种方式完成。以下是几种常见的方法: 修改CSS的display属性 通过改变元素的display属性可以在none(隐藏)…

js实现上传图片

js实现上传图片

使用HTML5的File API实现图片上传 HTML5的File API允许通过JavaScript访问用户选择的文件。需要创建一个文件输入元素,并监听其change事件。 <input t…