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克隆对象深度介绍
Nov 20 Javascript
JavaScript prototype属性深入介绍
Nov 27 Javascript
基于mouseout和mouseover等类似事件的冒泡问题解决方法
Nov 18 Javascript
Javascript中With语句用法实例
May 14 Javascript
轻松实现javascript图片轮播特效
Jan 13 Javascript
深入浅析AngularJS和DataModel
Feb 16 Javascript
Vue.js:使用Vue-Router 2实现路由功能介绍
Feb 22 Javascript
Vue.js数据绑定之data属性
Jul 07 Javascript
JS实现json对象数组按对象属性排序操作示例
May 18 Javascript
Vue.js中 v-model 指令的修饰符详解
Dec 03 Javascript
jQuery实现合并表格单元格中相同行操作示例
Jan 28 jQuery
详解vue组件中使用路由方法
Feb 12 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
随时给自己贴的图片加文字的php代码
2007/03/08 PHP
PHP setcookie() cannot modify header information 的解决方法
2009/01/09 PHP
php魔术变量用法实例详解
2014/11/13 PHP
Laravel框架中实现使用阿里云ACE缓存服务
2015/02/10 PHP
PHP+swoole实现简单多人在线聊天群发
2016/01/19 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
2016/07/25 PHP
PHP数据的提交与过滤基本操作实例详解
2016/11/11 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
用js+iframe形成页面的一种遮罩效果的具体实现
2013/12/31 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
2014/04/29 Javascript
jquery解决客户端跨域访问问题
2015/01/06 Javascript
jQuery调用ajax请求的常见方法汇总
2015/03/24 Javascript
JavaScript中Function函数与Object对象的关系
2015/12/17 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
Vue.js实现一个todo-list的上移下移删除功能
2017/06/26 Javascript
浅谈Vuejs中nextTick()异步更新队列源码解析
2017/12/31 Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
2018/02/21 Javascript
vue打包的时候自动将px转成rem的操作方法
2018/06/20 Javascript
element-ui中的select下拉列表设置默认值方法
2018/08/24 Javascript
实用的Vue开发技巧
2019/05/30 Javascript
微信小程序中如何使用flyio封装网络请求
2019/07/03 Javascript
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
[01:11:27]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Optic
2018/04/03 DOTA
Python3 能振兴 Python的原因分析
2014/11/28 Python
Python编程django实现同一个ip十分钟内只能注册一次
2017/11/03 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
python之PyQt按钮右键菜单功能的实现代码
2019/08/17 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
详解纯CSS3制作的20种loading动效
2017/07/05 HTML / CSS
鲜为人知的HTML5语音合成功能
2019/05/17 HTML / CSS
总裁办公室主任职责
2014/01/02 职场文书
政风行风建设责任书
2014/07/23 职场文书
2015年信访维稳工作总结
2015/04/07 职场文书
停电通知范文
2015/04/16 职场文书
数据结构课程设计心得体会
2016/01/15 职场文书
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python