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插件tooltipv顶部淡入淡出效果使用示例
Dec 05 Javascript
ff chrome和ie下全局动态定位的异同及全局高度的取法
Jun 30 Javascript
js中自定义方法实现停留几秒sleep
Jul 11 Javascript
js实现点击链接后窗口缩小并居中的方法
Mar 02 Javascript
JS 日期与时间戮相互转化的简单实例
Jun 22 Javascript
SelecT下拉框选中和取值的解决方法
Nov 22 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
Dec 04 Javascript
JS实现的简单轮播图运动效果示例
Dec 22 Javascript
JS完成画圆圈的小球
Mar 07 Javascript
Angularjs 实现动态添加控件功能
May 25 Javascript
微信小程序实战篇之购物车的实现代码示例
Nov 30 Javascript
JS数组方法shift()、unshift()用法实例分析
Jan 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
德劲1103二次变频版的打磨
2021/03/02 无线电
php 运行效率总结(提示程序速度)
2009/11/26 PHP
Windows7下PHP开发环境安装配置图文方法
2010/05/20 PHP
php单例模式示例分享
2015/02/12 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
2017/06/10 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
Yii框架操作cookie与session的方法实例详解
2019/09/04 PHP
utf8的编码算法 转载
2006/12/27 Javascript
javascript应用:Iframe自适应其加载的内容高度
2007/04/10 Javascript
JavaScript 事件参考手册
2008/12/24 Javascript
js中typeof的用法汇总
2013/12/12 Javascript
jQuery给多个不同元素添加class样式的方法
2015/03/26 Javascript
jQuery Ajax中的事件详细介绍
2015/04/16 Javascript
jquery实现鼠标拖拽滑动效果来选择数字的方法
2015/05/04 Javascript
jQuery实现平滑滚动的标签分栏切换效果
2015/08/28 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
jquery ztree实现模糊搜索功能
2016/02/25 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
2016/06/01 Javascript
WebStorm ES6 语法支持设置&amp;babel使用及自动编译(详解)
2017/09/08 Javascript
在Vue 中实现循环渲染多个相同echarts图表
2020/07/20 Javascript
[45:25]完美世界DOTA2联赛循环赛 PXG vs IO 第一场 11.06
2020/11/09 DOTA
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
python使用SMTP发送qq或sina邮件
2017/10/21 Python
python range()函数取反序遍历sequence的方法
2018/06/25 Python
用python写测试数据文件过程解析
2019/09/25 Python
Python如何省略括号方法详解
2020/03/21 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
2020/06/03 Python
HTML5 Canvas 起步(2) - 路径
2009/05/12 HTML / CSS
Parfume Klik丹麦:香水网上商店
2018/07/10 全球购物
解除劳动合同协议书
2014/09/17 职场文书
公司授权委托书范本
2014/09/18 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
海上钢琴师的观后感
2015/06/11 职场文书
2016学校先进集体事迹材料
2016/02/29 职场文书
各国货币符号大全
2022/02/17 杂记
古见同学有交流障碍症 第二季宣传CM公开播出
2022/04/11 日漫