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代码
Mar 07 Javascript
JS的location.href跳出框架打开新页面的方法
Sep 04 Javascript
JS实现仿京东淘宝竖排二级导航
Dec 08 Javascript
jQuery中offset()方法用法实例
Jan 16 Javascript
js实现点击按钮后给Div图层设置随机背景颜色的方法
May 06 Javascript
通用无限极下拉菜单的实现代码
May 31 Javascript
Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )
Mar 31 Javascript
浅谈React Event实现原理
Sep 20 Javascript
深入理解Angularjs 脏值检测
Oct 12 Javascript
vue模式history下在iis中配置流程
Apr 17 Javascript
vue中通过使用$attrs实现组件之间的数据传递功能
Sep 01 Javascript
微信小程序常用的3种提示弹窗实现详解
Sep 19 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
php5 pdo新改动加载注意事项
2008/09/11 PHP
PHP无敌近乎加密方式!
2010/07/17 PHP
mantis安装、配置和使用中的问题小结
2014/07/14 PHP
PHP队列用法实例
2014/11/05 PHP
php字符串替换函数substr_replace()用法实例
2015/03/17 PHP
JS操作JSON要领详细总结
2013/08/25 Javascript
js获取url中&quot;?&quot;后面的字串方法
2014/05/15 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
2015/06/10 Javascript
angularjs学习笔记之简单介绍
2015/09/26 Javascript
Angular利用trackBy提升性能的方法
2018/01/26 Javascript
React 源码中的依赖注入方法
2018/11/07 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
2019/05/16 Javascript
jquery.pager.js实现分页效果
2019/07/29 jQuery
js的Object.assign用法示例分析
2020/03/05 Javascript
解决vue里a标签值解析变量,跳转页面,前面加默认域名端口的问题
2020/07/22 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
2020/10/28 Javascript
python制作websocket服务器实例分享
2016/11/20 Python
使用Python更换外网IP的方法
2018/07/09 Python
浅谈python中get pass用法
2019/03/19 Python
Python3.4解释器用法简单示例
2019/03/22 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
2020/02/26 Python
Python制作一个仿QQ办公版的图形登录界面
2020/09/22 Python
美国一家运动专业鞋类零售商:Warehouse Shoe Sale(WSS)
2018/03/28 全球购物
波兰家具和室内装饰品购物网站:Vivre
2018/04/10 全球购物
英国DVD和蓝光碟片购买网站:Zoom.co.uk(电影和电视)
2019/09/23 全球购物
荷兰DOD药房中文官网:DeOnlineDrogist
2020/12/27 全球购物
如何写一个自定义标签
2012/12/28 面试题
十八届三中全会个人学习材料
2014/02/13 职场文书
幼儿园大班毕业教师寄语
2014/04/03 职场文书
2014年优秀班主任工作总结
2014/12/16 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
酒店开业主持词
2015/07/02 职场文书
教师节随笔
2015/08/15 职场文书
小学主题班会教案
2015/08/17 职场文书
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js
前端vue+express实现文件的上传下载示例
2022/02/18 Vue.js