clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切


Posted in Javascript onOctober 10, 2015

我们在网页上放置一个复制按钮,主要用来方便用户复制链接之类的复杂文本,以往的做法是,通过JS依靠Flash,甚至借助jQuery庞大的js库来实现文本复制到剪贴板的。今天我要给大家介绍的是一款极现代的,不需要flash,不依赖任何其他js库的非常小的插件,它叫clipboard.js。

运行效果图:

 clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切

HTML
首先加载本地clipboard.js文件。

<script src="clipboard.min.js"></script>

然后就是在body中加上要复制或剪切的文本域内容以及按钮。

<input id="foo" value="https://3water.com/article/73145.htm"> 
<button class="btn" data-clipboard-target="#foo" aria-label="复制成功!">复制</button>

这里,我们使用了HTML5的data-属性,用来定位复制对象目标,它指向了文本域#foo,说明复制的是#foo中的value内容,aria-label属性定义了复制成功后的信息,用来提示复制结果信息。
还有个属性data-clipboard-action,它定义当前操作是复制还是剪切,默认是复制,当data-clipboard-action="cut",这时,点击按钮将会剪切文本,跟WORD操作一样。当然,剪切操作仅适用于text和textarea。
我们也可以不需要input和textarea等元素内容作为复制对象,我们可以将要复制的内容通过ata-clipboard-text属性定义在按钮上,点击按钮就可以复制到ata-clipboard-text对应的内容。

<button class="btn" data-clipboard-text="这里是要复制的内容" aria-label="复制成功!">复制</button>

Javascript
将以下一句代码加入到</body>前的<script>里,保存打开浏览,点击按钮即可复制。

new Clipboard('.btn');

当然我们可以再进一步处理,比如当复制完成后,提示复制成功信息更友好些,只要执行以下代码即可:

var clipboard = new Clipboard('.btn'); 
 
clipboard.on('success', function(e) { 
 var msg = e.trigger.getAttribute('aria-label'); 
 alert(msg); 
 
 e.clearSelection(); 
});

以上就是,不需要flash,不依赖任何其他js库实现文本复制与剪切实现过程,希望对大家的学习有所帮助。

Javascript 相关文章推荐
javascript中数组的sort()方法的使用介绍
Dec 18 Javascript
21个值得收藏的Javascript技巧
Feb 04 Javascript
alert出数组中的随即值代码
Sep 25 Javascript
js预加载图片方法汇总
Jun 15 Javascript
微信小程序 loading(加载中提示框)实例
Oct 28 Javascript
jQuery 插件封装的方法
Nov 16 Javascript
JS中常用的消息框总结
Feb 24 Javascript
vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解
May 28 Javascript
微信小程序常见页面跳转操作简单示例
May 01 Javascript
jQuery内容选择器与表单选择器实例分析
Jun 28 jQuery
js实现盒子拖拽动画效果
Aug 09 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
Oct 20 Javascript
页面内容排序插件jSort使用方法
Oct 10 #Javascript
JavaScript子窗口调用父窗口变量和函数的方法
Oct 09 #Javascript
js中unicode转码方法详解
Oct 09 #Javascript
chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
Oct 09 #Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
Oct 09 #Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
Oct 09 #Javascript
jQuery+PHP实现可编辑表格字段内容并实时保存
Oct 09 #Javascript
You might like
一个阿拉伯数字转中文数字的函数
2006/10/09 PHP
Breeze 文章管理系统 v1.0.0正式发布
2006/12/14 PHP
基于PHP文件操作的详解
2013/06/05 PHP
深入解析phpCB批量转换的代码示例
2013/06/27 PHP
PHP 接入支付宝即时到账功能
2016/09/18 PHP
php和redis实现秒杀活动的流程
2019/07/17 PHP
PHP查找一列有序数组是否包含某值的方法
2020/02/07 PHP
jquery 触发a链接点击事件解决方案
2013/05/02 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
JS中产生20位随机数以0-9为例也可以是a-z A-Z
2014/08/01 Javascript
简介JavaScript中Boolean.toSource()方法的使用
2015/06/05 Javascript
JS简单实现城市二级联动选择插件的方法
2015/08/19 Javascript
node.js使用cluster实现多进程
2016/03/17 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
2017/03/13 Javascript
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
浅谈vue方法内的方法使用this的问题
2018/09/15 Javascript
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
详解Python编程中基本的数学计算使用
2016/02/04 Python
python生成词云的实现方法(推荐)
2017/06/13 Python
基于Python3 逗号代码 和 字符图网格(详谈)
2017/06/22 Python
python 图片去噪的方法示例
2019/07/09 Python
python enumerate内置函数用法总结
2020/01/07 Python
Selenium启动Chrome时配置选项详解
2020/03/18 Python
python 双循环遍历list 变量判断代码
2020/05/04 Python
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
Mountain Hardwear官网:攀岩服装和户外装备
2019/09/26 全球购物
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
新媒传信软件测试面试题
2013/02/24 面试题
十周年庆典策划方案
2014/06/03 职场文书
个人融资协议书范本两则
2014/10/15 职场文书
先进工作者个人总结
2015/02/15 职场文书
PHP新手指南
2021/04/01 PHP
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
2021/09/25 Java/Android
Vue2项目中对百度地图的封装使用详解
2022/06/16 Vue.js