js实现复制粘贴的两种方法


Posted in Javascript onDecember 04, 2020

本文实例为大家分享了js实现复制粘贴的具体代码,供大家参考,具体内容如下

一、前沿

界面需要复制功能,所以就写了一个作为简单记录

二、方法、推荐第二种。

1、第一种方法

1)、通过 document.execCommand('copy')
2)、前端代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>constructor-nodelist</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <link rel="stylesheet" href="https://cdn.bootcss.com/sweetalert/1.1.3/sweetalert.min.css"/>

</head>
<body>
<button class="copy_file" onclick="copyText('copy_file')">点我复制</button>
<a id="copy_file" href="复制内容" ></a>
<script type="text/javascript" src="https://cdn.bootcss.com/sweetalert/1.1.3/sweetalert.min.js"></script>
<script>
function copyText(str_file) {
 const btn = document.querySelector('.'+str_file);
 var copy_val = document.getElementById(str_file)
 var copy_file = copy_val.getAttribute("href");
 btn.addEventListener('click',() => {
  const input = document.createElement('input');
  document.body.appendChild(input);
  input.setAttribute('value', copy_file);
  input.select();
  if (document.execCommand('copy')) {
   document.execCommand('copy');
   swal("复制成功!","success");
  }
  document.body.removeChild(input);
 })
}

</script>
</body>

3)、总结:主要是通过 class和id 来复制 a标签中的 href,把复制好的内容放到 生成的input标签中,然后复制结束把 input标签给remove,这个你复制内容自行发挥,和修改 js。
4)、问题:第一次点击不生效,需要点击两次,暂时不解决

2、第二种方法

1)、通过 ClipboardJS 来实现 内容的复制,推荐这个
2)、git地址:clipboardjs
3)、前端代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <!-- 请自行去git项目下载 js-->
 <script src="./clipboard.min.js"></script>
 <link rel="stylesheet" href="https://cdn.bootcss.com/sweetalert/1.1.3/sweetalert.min.css"/>
 <script type="text/javascript" src="https://cdn.bootcss.com/sweetalert/1.1.3/sweetalert.min.js"></script>
</head>
<body>

<button id="btn" data-clipboard-text="str_555" onclick="copyText()">
 <span>Copy</span>
</button>
</body>
</html>

<script>
function copyText() {
 var btn = document.getElementById('btn');
 console.log(btn);
  var clipboard = new ClipboardJS(btn);
<!--  var clipboard = new ClipboardJS(btn, {-->
<!--   container: document.getElementById('btn')-->
<!--  });--> 如果你的项目是 bootstrap框架,请使用这个
  clipboard.on('success', function(e) {
   console.log(e);
   swal("复制成功!","success");
   clipboard.destroy();
  });

  clipboard.on('error', function(e) {
   console.log(e);
   swal("复制失败","error");
   clipboard.destroy();
  });
}
</script>

3)、总结:请一定要仔细阅读 文档。这个项目还是非常强大的,强烈推荐这个。

4)、问题:也是遇到了 第一次复制不生效的问题,暂时不解决了。

三、总结

1、都遇到了 第一次复制不生效的问题,后续解决把,都采用了 sweetalert 。
2、个人都只在 谷歌和火狐浏览器实验了,都可以用,如果其他浏览器版本不能用,请自行查阅其他文章,欢迎沟通、指正。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用js统计用户下载网页所需时间的脚本
Oct 15 Javascript
js对象的构造和继承实现代码
Dec 05 Javascript
JQuery处理json与ajax返回JSON实例代码
Jan 03 Javascript
JavaScript设计模式之策略模式实例
Oct 10 Javascript
jquery图片切换插件
Mar 16 Javascript
javascript结合canvas实现图片旋转效果
May 03 Javascript
Bootstrap3制作图片轮播效果
May 12 Javascript
JavaScript中判断数据类型的方法总结
May 24 Javascript
深入理解javascript作用域第二篇之词法作用域和动态作用域
Jul 24 Javascript
JS和Canvas实现图片的预览压缩和上传功能
Mar 30 Javascript
玩转vue的slot内容分发
Sep 22 Javascript
AngularJS动态生成select下拉框的方法实例
Nov 17 Javascript
echarts浮动显示单位的实现方法示例
Dec 04 #Javascript
JavaScript中条件语句的优化技巧总结
Dec 04 #Javascript
三剑客:offset、client和scroll还傻傻分不清?
Dec 04 #Javascript
简单谈谈offsetleft、offsetTop和offsetParent
Dec 04 #Javascript
HTML元素拖拽功能实现的完整实例
Dec 04 #Javascript
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
Dec 04 #Vue.js
vue基于Echarts的拖拽数据可视化功能实现
Dec 04 #Vue.js
You might like
漫荒推荐:画风超赞的国风漫画推荐 超长假期不无聊
2020/03/08 国漫
来自PHP.NET的入门教程
2006/10/09 PHP
dedecms中显示数字验证码的修改方法
2007/03/21 PHP
destoon数据库表说明汇总
2014/07/15 PHP
Yii框架实现图片上传的方法详解
2017/05/20 PHP
如何实现浏览器上的右键菜单
2006/07/10 Javascript
JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(六)
2012/04/07 Javascript
javascript中typeof的使用示例
2013/12/19 Javascript
js中indexof的用法详细解析
2013/12/24 Javascript
jquery插件Jplayer使用方法简析
2016/04/22 Javascript
vue分类筛选filter方法简单实例
2017/03/30 Javascript
mui上拉加载功能实例详解
2017/04/13 Javascript
浅谈react+es6+webpack的基础配置
2017/08/09 Javascript
angularjs实现柱状图动态加载的示例
2017/12/11 Javascript
[04:29]2016国际邀请赛中国区预选赛Ehome战队教练采访
2016/06/27 DOTA
python实现计算资源图标crc值的方法
2014/10/05 Python
浅谈Python程序与C++程序的联合使用
2015/04/07 Python
Python字符串替换实例分析
2015/05/11 Python
Python爬取APP下载链接的实现方法
2016/09/30 Python
Python与Java间Socket通信实例代码
2017/03/06 Python
Django Web开发中django-debug-toolbar的配置以及使用
2018/05/06 Python
在Pycharm中自动添加时间日期作者等信息的方法
2019/01/16 Python
解决pytorch-yolov3 train 报错的问题
2020/02/18 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
PyQt5 控件字体样式等设置的实现
2020/05/13 Python
python使用for...else跳出双层嵌套循环的方法实例
2020/05/17 Python
python实现粒子群算法
2020/10/15 Python
利用CSS3实现动态的二级三级菜单效果实例源码
2017/01/04 HTML / CSS
英国街头品牌:Bee Inspired Clothing
2018/02/12 全球购物
aden + anais英国官网:美国婴儿贴身用品品牌
2019/09/08 全球购物
Linux操作面试题
2012/05/16 面试题
新闻记者实习自我鉴定
2013/09/19 职场文书
管理提升方案
2014/06/04 职场文书
村党支部对照检查材料思想汇报
2014/09/28 职场文书
环卫处个人工作总结
2015/03/04 职场文书
CentOS8.4安装Redis6.2.6的详细过程
2021/11/20 Redis