在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 相关文章推荐
jquery 操作DOM的基本用法分享
Apr 05 Javascript
JavaScript获取和设置CheckBox状态的简单方法
Jul 05 Javascript
全面解析Bootstrap排版使用方法(标题)
Nov 30 Javascript
javascript每日必学之循环
Feb 19 Javascript
IntersectionObserver实现图片懒加载的示例
Sep 29 Javascript
讲解vue-router之什么是编程式路由
May 28 Javascript
浅析Vue.js 中的条件渲染指令
Nov 19 Javascript
Vue动态生成el-checkbox点击无法赋值的解决方法
Feb 21 Javascript
arctext.js实现文字平滑弯曲弧形效果的插件
May 13 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
Dec 19 Javascript
vue深度监听(监听对象和数组的改变)与立即执行监听实例
Sep 04 Javascript
Rust中的Struct使用示例详解
Aug 14 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
php自动加载的两种实现方法
2010/06/21 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
2013/06/13 PHP
PHP使用range协议实现输出文件断点续传代码实例
2014/07/04 PHP
php静态成员方法和静态的成员属性的使用方法
2017/10/26 PHP
PHP设计模式之装饰器模式定义与用法详解
2018/04/02 PHP
php判断/计算闰年的方法小结【三种方法】
2019/07/06 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
Laravel validate error处理,ajax,json示例
2019/10/25 PHP
OfflineSave离线保存代码再次发布使用说明
2007/05/23 Javascript
javascript 通用简单的table选项卡实现
2010/05/07 Javascript
jquery获取下拉列表的值为null的解决方法
2011/03/18 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
使用Chrome调试JavaScript的断点设置和调试技巧
2014/12/16 Javascript
jQuery插件zepto.js简单实现tab切换
2015/06/16 Javascript
正则表达式(语法篇推荐)
2016/06/24 Javascript
ui组件之input多选下拉实现方法(带有搜索功能)
2016/07/14 Javascript
nodeJs链接Mysql做增删改查的简单操作
2017/02/04 NodeJs
Vue之Watcher源码解析(2)
2017/07/19 Javascript
AngularJS ionic手势事件的使用总结
2017/08/09 Javascript
Jquery实现无缝向上循环滚动列表的特效
2019/02/13 jQuery
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
face++与python实现人脸识别签到(考勤)功能
2019/08/28 Python
CSS3 border-image详解、应用及jQuery插件
2011/08/29 HTML / CSS
HTML5学习笔记之html5与传统html区别
2016/01/06 HTML / CSS
Myprotein丹麦官网:欧洲第一运动营养品牌
2019/04/15 全球购物
ORLY官网:美国专业美甲一线品牌
2019/12/11 全球购物
正规的求职信范文分享
2013/12/11 职场文书
预备党员转正思想汇报
2014/01/12 职场文书
《落花生》教学反思
2014/02/25 职场文书
大学生活动总结怎么写
2014/04/29 职场文书
爱护公共设施的标语
2014/06/24 职场文书
学校社会实践活动总结
2014/07/03 职场文书
辞职书格式样本
2015/02/26 职场文书
暑期工社会实践报告
2015/07/13 职场文书
Win11 Build 21996.1 Dev版怎么样? win11系统截图欣赏
2021/11/21 数码科技