点击按钮复制文本 - js笔记

一个有趣的功能,但因为各大浏览器的原因,想做好还是有一定难度的,看下这款介绍,他是如何实现的

这是一个有趣的功能,但因为各大浏览器的原因,想做好还是有一定难度的,看下这款介绍,他是如何实现的。

效果如下:

点击按钮复制文本 - js笔记-Npcink
功能演示

我把你当兄弟你却想着复制我?

代码如下:

html

<style type="text/css">
  .wrapper {position: relative;}
  #input {position: absolute;top: 0;left: 0;opacity: 0;z-index: -10;}
</style>
 
<div class="wrapper">
  <p id="text">我把你当兄弟你却想着复制我?</p>
  <textarea id="input">这是幕后黑手</textarea>
  <button onclick="copyText()">copy</button>
</div>

JS

<script type="text/javascript">
  function copyText() {
   var text = document.getElementById("text").innerText;
   var input = document.getElementById("input");
   input.value = text; // 修改文本框的内容
   input.select(); // 选中文本
   document.execCommand("copy"); // 执行浏览器复制命令
   alert("复制成功");
  }
 </script>

兼容

  • Firefox 48.0,Chrome 60.0,IE 8 

原理:

浏览器提供了 copy 命令 ,可以复制选中的内容

document.execCommand("copy")

如果是输入框,可以通过 select() 方法,选中输入框的文本,然后调用  copy 命令,将文本复制到剪切板

但是 select() 方法只对 <input> 和 <textarea> 有效,对于 <p> 就不好使

最后我的解决方案是,在页面中添加一个 <textarea>,然后把它隐藏掉

点击按钮的时候,先把 <textarea> 的 value 改为 <p> 的 innerText,然后复制 <textarea> 中的内容 

WP开发

主题文件结构及执行(速看) - WordPress 开发

2018-12-25 8:41:00

js

随鼠标移动的特效

2019-7-1 7:30:51

⚠️
Npcink上的部份代码及教程来源于互联网,仅供网友学习交流,若您喜欢本文可附上原文链接随意转载。
无意侵害您的权益,请发送邮件至 link@baimu.org 或点击右侧 私信:Muze 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索