网站怎么实现点击复制功能?几行js代码搞定!

 2022-12-09    6860  

浏览网站时,我们经常看到一些点击复制一段文本的内容,比如 点击复制网页文件地址。

这个功能是怎么实现的呢?

其实需求不复杂的话,很简单。主要用到的就是 window的 selection 对象和Range对象,以及执行操作系统copy命令的代码。

HTML代码:

<span id="text">blog.lingruofeng.com</span>
<a href="javascript:void(0)" id="copy">点击复制</a>

JS代码:

// 获取标签
let copy = document.getElementById("copy");
let text = document.getElementById("text");
copy.onclick = function(){
    // 创建 Selection 对象,表示用户选择的文本范围或光标当前位置。
    let selection = window.getSelection();
    // 去掉所有的被选择范围。
    selection.removeAllRanges();
    // 重新创建选择范围
    let range = document.createRange();
    // 更改text标签内容,增加自定义的内容。这里模仿 bootcss 头尾增加<script>标签
    // 利用模版字符串,更方便。
    let temp = text.innerHTML.trim();
    text.innerHTML = `&lt;script&gt;${temp}&lt;\/script&gt;`;
    // 选择的内容来自指定节点
    range.selectNode(text);  // 先选中
    selection.addRange(range);
    // 执行 “copy” 命令
    document.execCommand("copy");
    text.innerHTML = temp;   // 让文本恢复原样
    // 去掉所有的被选择范围
    selection.removeAllRanges();
}

搞定。

这里要说明的是,最后一步一定要再次去掉所有已被选择的范围。否则,文本会被选中。

而我们希望的是,点击“复制”后,就像什么事都没发生的一样。因此,最后要再一次去掉所有已被选择的范围。

分享到:
  •  标签:  
  • js
  •  
  • 评论列表
  •   2K电影网 来自 美国
    发布于 2025-10-17 02:43:08  回复
  • 楼上的能详细介绍一下么?https://www.2kdy.com
  •   香蕉电影 来自 美国
    发布于 2025-11-06 01:25:58  回复
  • 有品位!https://www.xjtv1.com
  •   2K影院 来自 美国
    发布于 2025-11-06 23:36:25  回复
  • 楼主写的很经典!https://www.2kdy.com
  •   365网剧 来自 北美地区
    发布于 2025-11-20 19:32:35  回复
  • 好东西,赞一个!https://www.365duanju.com
  •   心理器材 来自 澳大利亚
    发布于 2025-11-23 08:14:26  回复
  • 勤奋灌水,天天向上!https://aptlawfirm.com/
  •   365短剧网 来自 美国
    发布于 2025-11-23 16:42:52  回复
  • 不错的帖子,值得收藏!https://www.365duanju.com
  •   365短剧 来自 美国
    发布于 2025-11-23 21:41:15  回复
  • 顶一个!https://www.365duanju.com
  •   365短剧 来自 美国
    发布于 2025-11-24 03:30:11  回复
  • 楼主是我最崇拜的人!https://www.365duanju.com
  •   2K影院 来自 美国
    发布于 2025-11-24 03:54:11  回复
  • 投楼主一票,不用谢哦!https://www.2kdy.com
  •   365短剧网 来自 美国
    发布于 2025-11-24 16:27:36  回复
  • 太高深了,理解力不够用了!https://www.365duanju.com
  •   2K影视 来自 英国
    发布于 2025-11-30 16:33:20  回复
  • 观点鲜明,立场坚定,作者态度明确。https://www.2kdy.com
  •   2K影院 来自 美国
    发布于 2025-12-02 05:48:53  回复
  • 今天是个特别的日子,值得纪念!https://www.2kdy.com
  •   2K电影网 来自 IANA保留地址
    发布于 2025-12-13 00:33:00  回复
  • 这一年啥事没干,光研究楼主的帖子了!https://www.2kdy.com
  •   quickq电脑版 来自 韩国
    发布于 2025-12-22 09:23:17  回复
  • 一口气看完了,我要下去回味回味了!https://www.quickq9.com
  •   QuickQ 来自 西班牙
    发布于 2025-12-24 23:18:08  回复
  • 知识就是力量啊!https://www.quickq9.com
  •   quickq官网 来自 土耳其
    发布于 2025-12-25 19:33:21  回复
  • 楼主你想太多了!https://www.quickq9.com
  •   微信代付 来自 菲律宾
    发布于 2025-12-30 08:19:49  回复
  • 微信代付 TeleGram@odiodihttps://t.me/odiodi
  •   微信代付 来自 智利
    发布于 2026-01-01 18:42:50  回复
  • ai实时换脸 TeleGram@odiodihttps://t.me/odiodi
  •   quickq 来自 乌拉圭
    发布于 2026-01-05 01:47:20  回复
  • 楼主是一个典型的文艺青年啊!https://www.quickq9.com
  •   quickq下载 来自 摩洛哥
    发布于 2026-01-16 09:49:42  回复
  • 楼主很有艺术范!https://www.quickq9.com
  •   有道翻译下载 来自 美国
    发布于 2026-03-04 11:22:35  回复
  • 白富美?高富帅?https://pc-youdao.it.com
  •   快连VPN下载 来自 印度
    发布于 2026-03-04 18:37:51  回复
  • 以后就跟楼主混了!https://www.kuailian-web.it.com
  •   TRX能量代理 来自 IANA保留地址
    发布于 2026-03-05 06:56:32  回复
  • 鑺傜渷TRX鎵嬬画璐?- 1.5 TRX=1娆¤浆璐︽鏁?鐩存帴鑺傜渷80%!鏃犺瀵规柟鏈夋病鏈塙鎴栬€呮槸鍚︿氦鏄撴墍- 澶嶅埗鍦板潃銆怲AZdAh5LU55aUPPZkgF4rupQwg6inQ5J5X銆戣浆 1.5 TRX鍗冲彲0鎵嬬画璐硅浆璐?TG鏈哄櫒浜?@trxokokbothttps://t.me/xingtatrx
  •   节省TRX手续费 来自 IANA保留地址
    发布于 2026-03-05 09:53:41  回复
  • 娉㈠満鑳介噺姹犱唬鐞?- 1.5 TRX=1娆¤浆璐︽鏁?鐩存帴鑺傜渷80%!鏃犺瀵规柟鏈夋病鏈塙鎴栬€呮槸鍚︿氦鏄撴墍- 澶嶅埗鍦板潃銆怲AZdAh5LU55aUPPZkgF4rupQwg6inQ5J5X銆戣浆 1.5 TRX鍗冲彲0鎵嬬画璐硅浆璐?TG鏈哄櫒浜?@trxokokbothttps://t.me/xingtatrx
  •   有道翻译官网 来自 美国
    发布于 2026-03-05 10:04:52  回复
  • 在哪里跌倒,就在那里多爬一会儿!https://www.win-youdao.it.com
  •   波场能量池代理 来自 美国
    发布于 2026-03-05 10:27:53  回复
  • 娉㈠満鑳介噺 - 1.5 TRX=1娆¤浆璐︽鏁?鐩存帴鑺傜渷80%!鏃犺瀵规柟鏈夋病鏈塙鎴栬€呮槸鍚︿氦鏄撴墍- 澶嶅埗鍦板潃銆怲AZdAh5LU55aUPPZkgF4rupQwg6inQ5J5X銆戣浆 1.5 TRX鍗冲彲0鎵嬬画璐硅浆璐?TG鏈哄櫒浜?@trxokokbothttps://t.me/xingtatrx
  •   什么是能量租赁 来自 吉林省
    发布于 2026-03-06 11:40:22  回复
  • 浠€涔堟槸鑳介噺绉熻祦 - 1.5 TRX=1娆¤浆璐︽鏁?鐩存帴鑺傜渷80%!鏃犺瀵规柟鏈夋病鏈塙鎴栬€呮槸鍚︿氦鏄撴墍- 澶嶅埗鍦板潃銆怲AZdAh5LU55aUPPZkgF4rupQwg6inQ5J5X銆戣浆 1.5 TRX鍗冲彲0鎵嬬画璐硅浆璐?TG鏈哄櫒浜?@trxokokbothttps://t.me/xingtatrx
  •   wps 来自 IANA保留地址
    发布于 2026-03-06 13:36:43  回复
  • 最近回了很多帖子,都没人理我!https://pcs-wps.com

发表评论:

本文链接:https://blog.lingruofeng.com/seo/43.html

版权声明:本站部分素材来自网络整理,如侵犯了您的合法权益,请联系我们删除!