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进行拖拽
Jul 20 Javascript
用javascript获取textarea中的光标位置
May 06 Javascript
文本框中,回车键触发事件的js代码[多浏览器兼容]
Jun 07 Javascript
javascript贪吃蛇完整版(源码)
Dec 09 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
Mar 01 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
Oct 28 Javascript
JavaScript实现兼容IE6的收起折叠与展开效果实例
Sep 20 Javascript
Vue.js搭建移动端购物车界面
Jun 28 Javascript
Vue2.0用户权限控制解决方案的示例
Feb 10 Javascript
详解Vue 多级组件透传新方法provide/inject
May 09 Javascript
React 源码中的依赖注入方法
Nov 07 Javascript
Js视频播放器插件Video.js使用方法详解
Feb 04 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 HTML代码串 截取实现代码
2009/06/29 PHP
php缓冲 output_buffering的使用详解
2013/06/13 PHP
使用PHP接收POST数据,解析json数据
2013/06/28 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
2015/10/20 PHP
JavaScript Accessor实现说明
2010/12/06 Javascript
javascript实现的简单计时器
2015/07/19 Javascript
jQuery实现TAB风格的全国省份城市滑动切换效果代码
2015/08/24 Javascript
实例浅析js的this
2016/12/11 Javascript
jQuery模拟淘宝购物车功能
2017/02/27 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
2018/04/13 Javascript
使用vue-cli导入Element UI组件的方法
2018/05/16 Javascript
vue 设置路由的登录权限的方法
2018/07/03 Javascript
vue 地图可视化 maptalks 篇实例代码详解
2019/05/21 Javascript
element-ui table组件如何使用render属性的实现
2019/11/04 Javascript
JS如何把字符串转换成json
2020/02/21 Javascript
python 自动提交和抓取网页
2009/07/13 Python
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
Python Django框架url反向解析实现动态生成对应的url链接示例
2019/10/18 Python
Python大数据之使用lxml库解析html网页文件示例
2019/11/16 Python
python操作cfg配置文件方式
2019/12/22 Python
浅谈python 中的 type(), dtype(), astype()的区别
2020/04/09 Python
Python自动登录QQ的实现示例
2020/08/28 Python
Python 实现集合Set的示例
2020/12/21 Python
python re.match()用法相关示例
2021/01/27 Python
CSS3 clip-path 用法介绍详解
2018/03/01 HTML / CSS
Expedia英国:全球最大的在线旅游公司
2017/09/07 全球购物
致标枪运动员加油稿
2014/02/15 职场文书
学习交流会主持词
2014/04/01 职场文书
少先队工作总结2015
2015/05/13 职场文书
电影红河谷观后感
2015/06/11 职场文书
学校中层领导培训心得体会
2016/01/11 职场文书
助学金申请书该怎么写?
2019/07/16 职场文书
人为什么会“幸灾乐祸”?
2019/08/06 职场文书
一文读懂go中semaphore(信号量)源码
2021/04/03 Golang
python实现图片九宫格分割的示例
2021/04/25 Python
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
2021/04/29 HTML / CSS