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回车实现登录简单实现
Aug 20 Javascript
提取字符串中年月日的函数代码
Nov 05 Javascript
JavaScript在for循环中绑定事件解决事件参数不同的情况
Jan 20 Javascript
JS实现漂亮的窗口拖拽效果(可改变大小、最大化、最小化、关闭)
Oct 10 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
May 17 Javascript
AngularJS基础 ng-dblclick 指令用法
Aug 01 Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
Dec 14 Javascript
基于vue2实现上拉加载功能
Nov 28 Javascript
Angular2.0实现modal对话框的方法示例
Feb 18 Javascript
vue 实现路由跳转时更改页面title
Nov 05 Javascript
实用的 vue tags 创建缓存导航的过程实现
Dec 03 Vue.js
使用vuex-persistedstate本地存储vuex
Apr 29 Vue.js
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
常用的PHP数据库操作方法(MYSQL版)
2011/06/08 PHP
PHP查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
php json_encode值中大括号与花括号区别
2013/09/30 PHP
php实现将二维关联数组转换成字符串的方法详解
2017/07/31 PHP
Javascript实例教程(19) 使用HoTMetal(7)
2006/12/23 Javascript
jquery ajax提交表单数据的两种实现方法
2010/04/29 Javascript
jQuery表单验证插件formValidator(改进版)
2012/02/03 Javascript
js触发onchange事件的方法说明
2014/03/08 Javascript
javascript读写json示例
2014/04/11 Javascript
javascript中数组的多种定义方法和常用函数简介
2014/05/09 Javascript
全面兼容的javascript时间格式化函数(比较实用)
2014/05/14 Javascript
前端jquery部分很精彩
2016/05/03 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
2016/06/08 Javascript
JavaScript和jQuery制作光棒效果
2017/02/24 Javascript
Node.js中流(stream)的使用方法示例
2017/07/16 Javascript
浅谈VUE监听窗口变化事件的问题
2018/02/24 Javascript
vue2.5.2使用http请求获取静态json数据的实例代码
2018/02/27 Javascript
vue左右侧联动滚动的实现代码
2018/06/06 Javascript
微信小程序实现topBar底部选择栏效果
2018/07/20 Javascript
JavaScript基于数组实现的栈与队列操作示例
2018/12/22 Javascript
Vue在chrome44偶现点击子元素事件无法冒泡的解决方法
2019/12/15 Javascript
vue3.0生命周期的示例代码
2020/09/24 Javascript
[05:03]显微镜下的DOTA2第十期——Ti3豪之超神幽鬼
2014/06/23 DOTA
[02:51]2014DOTA2 TI小组赛总结中国军团全部进军钥匙球馆
2014/07/15 DOTA
Python中类型关系和继承关系实例详解
2015/05/25 Python
python使用Plotly绘图工具绘制柱状图
2019/04/01 Python
Python使用pyyaml模块处理yaml数据
2020/04/14 Python
新手学习Python2和Python3中print不同的用法
2020/06/09 Python
Anaconda的安装与虚拟环境建立
2020/11/18 Python
animation和transition的区别
2020/10/12 HTML / CSS
Penhaligon’s英国官网:成立于1870年的英国香水制造商
2021/02/18 全球购物
小学节能减排倡议书
2014/05/15 职场文书
志愿者个人总结
2015/03/03 职场文书
冲出亚马逊观后感
2015/06/03 职场文书
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang
基于Redission的分布式锁实战
2022/08/14 Redis