在vue使用clipboard.js进行一键复制文本的实现示例


Posted in Javascript onJanuary 15, 2019

需求

最近在做商城项目,有个需求是需要点击复制订单号的,然后就觉得可以使用原生的复制方法和使用第三方库。

浏览器原生方法

这种方式兼容性不是太好,还要看浏览器是否支持,容易采坑。

//在IE中可以用window.clipboardData.setData('text','内容')实现。
//在IE中clipboardData是window的属性,而其他浏览器则是相应的event对象的属性,这实际上是一种安全措施,防止未经授权的访问,为了兼容其他浏览器,所以我们不能通过clipboardData来实现这种操作。
//具体做法:
//1.创建一个隐藏的input框
//2.点击的时候,将要复制的内容放进input框中
//3.选择文本内容input.select()
//4.这里只能用input或者textarea才能选择文本。
//5.执行浏览器的复制命令document.execCommand("copy")。
 function copyText() {
  var text = document.getElementById("text").innerText; // 获取要复制的内容也可以传进来
  var input = document.getElementById("input"); // 获取隐藏input的dom
  input.value = text; // 修改文本框的内容
  input.select(); // 选中文本
  document.execCommand("copy"); // 执行浏览器复制命令
  alert("复制成功");
 }

//在事件中可以通过e 对内容进行修饰
document.body.oncopy = e => {
  // 监听全局复制 做点什么
}
 // 还有这种写法:
document.addEventListener("copy", e => {
 // 监听全局复制 做点什么
});

使用 clipboard.js

我们要先安装

npm install clipboard --save

在 mian.js 中引入,当然我们也可以在用到的 .vue 中引入,因为我不止一个地方用到了复制,所以直接在 main.js 里面引入了。

import clipboard from 'clipboard';
//注册到vue原型上
Vue.prototype.clipboard = clipboard;

在需要的地方使用

//dom
···
<div class="sn Lfll Lmr20">订单编号:
  <span data-clipboard-action="copy" class="cobyOrderSn" :data-clipboard-text="orderData.orderSn" @click="copyLink">{{orderData.orderSn}}</span>
 </div>
···
//js
···
 copyLink() {
   let _this = this;
   let clipboard = new this.clipboard(".cobyOrderSn");
   clipboard.on('success', function () {
    _this.$toast("复制成功")
   });
   clipboard.on('error', function () {
    _this.$toast("复制失败")
   });
 }
···

当然 clipboard.js 的功能可不止这么简单,我们还可使用它进行剪切,还可以通过它复制其他元素的值等,具体的使用可查看官方文档: clipboard.js ;

小结

关于浏览器一键复制,推荐使用 clipboard.js 来做,因为现在原生方法兼容性并不是很好,而且 clipboard.js 文件并不大,但是却可以帮我们做很多事情,减轻很多调试和避免采坑。以上只是记录一下自己遇到的问题,如有错误,还请指正,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JSON 入门指南 想了解json的朋友可以看下
Aug 26 Javascript
Ajax+Json 级联菜单实现代码
Oct 27 Javascript
Jquery知识点三 jquery表单对象操作
Jan 17 Javascript
JavaScript通过正则表达式实现表单验证电话号码
Mar 07 Javascript
浅析基于WEB前端页面的页面内容搜索的实现思路
Jun 10 Javascript
元素绑定click点击事件方法
Jun 08 Javascript
javascript中setAttribute兼容性用法分析
Dec 12 Javascript
简述jQuery Easyui一些用法
Aug 01 jQuery
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
Aug 04 Javascript
Postman模拟发送带token的请求方法
Mar 31 Javascript
详解Vue.directive 自定义指令
Mar 27 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
Nov 19 Javascript
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
Jan 15 #Javascript
mock.js实现模拟生成假数据功能示例
Jan 15 #Javascript
详解webpack引入第三方库的方式以及注意事项
Jan 15 #Javascript
JS高阶函数原理与用法实例分析
Jan 15 #Javascript
JS立即执行函数功能与用法分析
Jan 15 #Javascript
vue-cli 目录结构详细讲解总结
Jan 15 #Javascript
webpack file-loader和url-loader的区别
Jan 15 #Javascript
You might like
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
使用PHP强制下载PDF文件示例
2014/01/17 PHP
PHP中spl_autoload_register()和__autoload()区别分析
2014/05/10 PHP
将FCKeditor导入PHP+SMARTY的实现方法
2015/01/15 PHP
php获取字符串中各个字符出现次数的方法
2015/02/23 PHP
屏蔽PHP默认设置中的Notice警告的方法
2016/05/20 PHP
PHP判断函数是否被定义的方法
2019/06/21 PHP
使用javascript访问XML数据的实例
2006/12/27 Javascript
增强用户体验友好性之jquery easyui window 窗口关闭时的提示
2012/06/22 Javascript
jQuery点击弹出下拉菜单的小例子
2013/08/01 Javascript
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
2013/12/16 Javascript
javascript 密码框防止用户粘贴和复制的实现代码
2014/02/17 Javascript
js实现飞入星星特效代码
2014/10/17 Javascript
jQuery中remove()方法用法实例
2014/12/25 Javascript
jQuery实现防止提交按钮被双击的方法
2015/03/24 Javascript
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
2015/08/03 Javascript
巧用jQuery选择器提高写表单效率的方法
2016/08/19 Javascript
实现一个完整的Node.js RESTful API的示例
2017/09/29 Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
2019/05/16 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
2020/05/19 jQuery
构建一个JavaScript插件系统
2020/10/20 Javascript
[52:57]2014 DOTA2国际邀请赛中国区预选赛 LGD-CDEC VS HGT
2014/05/21 DOTA
使用python遍历指定城市的一周气温
2017/03/31 Python
python机器学习实战之最近邻kNN分类器
2017/12/20 Python
python3字符串操作总结
2019/07/24 Python
Python socket模块方法实现详解
2019/11/05 Python
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
全球最大最受欢迎的旅游社区:Tripadvisor
2017/11/03 全球购物
餐厅销售主管职责范本
2014/02/19 职场文书
春季运动会广播稿大全
2014/02/19 职场文书
群众路线党课主持词
2014/04/01 职场文书
感恩教育活动总结
2014/05/05 职场文书
个人房屋转让协议书范本
2014/10/26 职场文书
横空出世观后感
2015/06/09 职场文书
小学语文教学随笔
2015/08/14 职场文书
2016年大学生暑期社会实践方案
2015/11/26 职场文书