js 复制功能之原理与注意事项

本文探讨了JavaScript中实现复制功能的原理,包括使用`document.execCommand('copy')`方法,以及在不同浏览器中的兼容性和处理方式。同时,文章还提到了在实现过程中需要注意的用户权限、安全性问题和最佳实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="ie=edge">
   <title>js复制原理</title>
</head>
<style>
.daima{
   background-color: #e0e0e0;
   padding: 10px;
   width: 600px;
   margin: 30px auto;
   position: relative;
}
.copy{
   position: absolute;
   top: 20px;
   right: 20px;
   background-color: #ccc;
   border-radius: 5px;
   padding: 8px 16px;
   cursor: pointer;
   font-size: 14px;
   color: #0094ff;
}
</style>
<body>
   <div class="daima">
      <pre>
         <code class="codecont"></code>
      </pre>
      <span class="copy" onclick="copyCode()">复制代码</span>
   </div>
</body>
</html>
<script>
   var text = `
downFile = (data)=>{
   if (!data) {
      alert('没有上传')
      return
   }
   // 转换下载数据的url
   let url = window.URL.createObjectURL(new Blob([data]))
   // 创建a标签
   let a = document.createElement('a')
   a.style.display = 'none'
   a.href = url
   a.setAttribute('download', data.name)
   document.body.appendChild(a)
   a.click();
   a.remove();
};`
  document.getElementsByClassName('codecont')[0].innerHTML = text

  // 复制代码 -- 个人推荐使用 pre 标签来显示(容易控制样式),textarea 标签用来复制
  copyCode = ()=>{
      let textarea = document.createElement('textarea')
      // 要往html添加结构,才能复制成功(注意不要使用 display: none 去隐藏textarea标签,会复制不成功)
      textarea.style="position: absolute;z-index: -9999;top: 0;left: -200%;"
      document.body.appendChild(textarea)
      textarea.innerHTML = text.trim()
      textarea.select(); // 选择对象
      document.execCommand("Copy"); // 执行浏览器复制命令
      alert("内容复制成功!");
      textarea.remove()
  }
</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值