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 相关文章推荐
js不是基础的基础
Dec 24 Javascript
写出更好的JavaScript程序之undefined篇(中)
Nov 23 Javascript
在Javascript中 声明时用&quot;var&quot;与不用&quot;var&quot;的区别
Apr 15 Javascript
用js来刷新当前页面保留参数的具体实现
Dec 23 Javascript
jquery制作 随机弹跳的小球特效
Feb 01 Javascript
jQuery实现Div拖动+键盘控制综合效果的方法
Mar 10 Javascript
javascript日期操作详解(脚本之家整理)
Sep 05 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
Dec 23 Javascript
JavaScript实现图片拖曳效果
Sep 08 Javascript
小程序实现锚点滑动效果
Sep 23 Javascript
Vue组件为什么data必须是一个函数
Jun 11 Javascript
jQuery实现滑动开关效果
Aug 02 jQuery
页面内容排序插件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/17 PHP
关于Zend Studio 配色方案插件的介绍
2013/06/24 PHP
PHP类的反射用法实例
2014/11/03 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
2015/03/18 PHP
PHP数组式访问接口ArrayAccess用法分析
2017/12/28 PHP
mongodb和php的用法详解
2019/03/25 PHP
php实现登录页面的简单实例
2019/09/29 PHP
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
解析javascript系统错误:-1072896658的解决办法
2013/07/08 Javascript
如何实现移动端浏览器不显示 pc 端的广告
2015/10/15 Javascript
JS实现网页标题栏显示当前时间和日期的完整代码
2015/11/02 Javascript
jQuery自定义滚动条完整实例
2016/01/08 Javascript
浅谈jQuery 选择器和dom操作
2016/06/07 Javascript
浅述Javascript的外部对象
2016/12/07 Javascript
新闻上下滚动jquery 超简洁(必看篇)
2017/01/21 Javascript
Node.js websocket使用socket.io库实现实时聊天室
2017/02/20 Javascript
React+react-dropzone+node.js实现图片上传的示例代码
2017/08/23 Javascript
Vue监听数据渲染DOM完以后执行某个函数详解
2018/09/11 Javascript
解决vue+webpack项目接口跨域出现的问题
2020/08/10 Javascript
Python实现带百分比的进度条
2016/06/28 Python
python验证码识别教程之灰度处理、二值化、降噪与tesserocr识别
2018/06/04 Python
python pip源配置,pip配置文件存放位置的方法
2019/07/12 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
2019/07/23 Python
基于python二叉树的构造和打印例子
2019/08/09 Python
使用Python实现 学生学籍管理系统
2019/11/26 Python
pycharm下pyqt4安装及环境配置的教程
2020/04/24 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
2020/08/17 Python
Python利用socket模块开发简单的端口扫描工具的实现
2021/01/27 Python
一款利用纯css3实现的超炫3D表单的实例教程
2014/12/01 HTML / CSS
来自Ocado的宠物商店:Fetch
2018/07/10 全球购物
机电专业大学生职业规划书范文
2014/02/25 职场文书
招聘专员岗位职责
2014/03/07 职场文书
乡镇信息公开实施方案
2014/03/23 职场文书
酒店服务员岗位职责
2015/02/09 职场文书
最新的离婚协议书范本!
2019/07/02 职场文书
Redis遍历所有key的两个命令(KEYS 和 SCAN)
2021/04/12 Redis