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 相关文章推荐
jQuery打印图片pdf、txt示例代码
Jul 22 Javascript
jQuery实现行文字链接提示效果的方法
Mar 10 Javascript
js文字横向滚动特效
Nov 11 Javascript
JavaScript 中有关数组对象的方法(详解)
Aug 15 Javascript
Servlet实现文件上传,可多文件上传示例
Dec 05 Javascript
javascript学习之json入门
Dec 22 Javascript
jQuery居中元素scrollleft计算方法示例
Jan 16 Javascript
jQuery实现 RadioButton做必选校验功能
Jun 15 jQuery
jQuery实现form表单序列化转换为json对象功能示例
May 23 jQuery
vue如何进行动画的封装
Sep 26 Javascript
vue父组件给子组件的组件传值provide inject的方法
Oct 23 Javascript
react使用CSS实现react动画功能示例
May 18 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
Yii使用技巧大汇总
2015/12/29 PHP
java微信开发之上传下载多媒体文件
2016/06/24 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
Javascript 设计模式(二) 闭包
2010/05/26 Javascript
JS 类型转换常见方法小结
2010/05/31 Javascript
angular简介和其特点介绍
2015/01/29 Javascript
浅谈jQuery构造函数分析
2015/05/11 Javascript
javascript操作ul中li的方法
2015/05/14 Javascript
jQuery基于ajax实现星星评论代码
2015/08/07 Javascript
情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript)
2015/08/21 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
2015/08/21 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
Bootstrap每天必学之轮播(Carousel)插件
2016/04/25 Javascript
基于JS实现密码框(password)中显示文字提示功能代码
2016/05/27 Javascript
Google Maps基础及实例解析
2016/08/06 Javascript
vue2.0父子组件及非父子组件之间的通信方法
2017/01/21 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
2017/02/09 Javascript
Angular 4环境准备与Angular cli创建项目详解
2017/05/27 Javascript
基于AngularJS的拖拽文件上传的实例代码
2017/07/15 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
vue-cli项目根据线上环境分别打出测试包和生产包
2018/05/23 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
2018/11/02 Javascript
用node开发并发布一个cli工具的方法步骤
2019/01/03 Javascript
微信小程序canvas截取任意形状的实现代码
2020/01/13 Javascript
javascript实现移动端轮播图
2020/12/09 Javascript
深入理解Django的自定义过滤器
2017/10/17 Python
css3个性化字体_动力节点Java学院整理
2017/07/12 HTML / CSS
C# .NET面试题
2015/11/28 面试题
品管员岗位职责
2013/11/10 职场文书
实习生自荐信范文
2013/11/13 职场文书
无工作经验者个人求职信范文
2013/12/22 职场文书
十佳班主任事迹材料
2014/01/18 职场文书
年度考核自我鉴定
2014/03/19 职场文书
企业文化演讲稿
2014/05/20 职场文书
MySQL 自定义变量的概念及特点
2021/05/13 MySQL
Java Optional<Foo>转换成List<Bar>的实例方法
2021/06/20 Java/Android