JS基于clipBoard.js插件实现剪切、复制、粘贴


Posted in Javascript onMay 03, 2016

摘要:

最近做了一个项目,其中有这样一需求:实现一个点击按钮复制链接的功能,通过网上找相关资料,找到了几个插件,ZeroClipboard是通过flash实现的复制功能,随着越来越多的提议废除flash,于是就想能不能通过js来实现复制剪切呢?

地址:https://github.com/baixuexiyang/clipBoard.js

方法:

复制

var copy = new clipBoard(document.getElementById('data'), {
beforeCopy: function() {
},
copy: function() {
return document.getElementById('data').value;
},
afterCopy: function() {
}
});

剪切

var cut = new clipBoard(document.getElementById('data'), {
beforeCut: function() {
},
Cut: function() {
return document.getElementById('data').value;
},
afterCut: function() {
}
});

粘贴

var paste = new clipBoard(document.getElementById('data'), {
beforePaste: function() {
},
paste: function() {
return document.getElementById('data').value;
},
afterPaste: function() {
}
});

补充

1.引入clipboard.min.js文件
2.定义一个button按钮,注意按钮的属性:data-clipboard-action="copy" 表示是复制行为,data-clipboard-text=‘XXX',XXX表示你要复制的内容
3.书写js,建立clipboard对象以及复制后执行的方法

演示代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>target-div</title>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script>
</head>
<body>
	<button class="btn" data-clipboard-text="Just because you can doesn't mean you should — clipboard.js">
  Copy to clipboard
</button>
<button class="btn" data-clipboard-text="ean you should — clipboard.js">
  Copy to clipboard2
</button>
  
  <script>
 
    var clipboard = new ClipboardJS('.btn');
    clipboard.on('success', function(e) {
      console.info('Action:', e.action);
      console.info('Text:', e.text);
      console.info('Trigger:', e.trigger);
      alert('复制成功,您复制的链接为'+e.text);
      e.clearSelection();
    });
 
    clipboard.on('error', function(e) {
      console.error('Action:', e.action);
      console.error('Trigger:', e.trigger);
      alert('复制失败')
    });
		
  </script>
</body>
</html>

最近在做项目的时候需要实现复制黏贴的功能,但是js自己提供的各种方法存在兼容性问题,最后决定使用插件来实现,找了很多插件,发现了了一款比较好用的,分享给大家

Javascript 相关文章推荐
javascript学习之闭包分析
Dec 02 Javascript
基于JavaScript获取鼠标位置的各种方法
Dec 16 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
Mar 25 Javascript
js获取页面及个元素高度、宽度的代码
Apr 26 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
May 27 Javascript
BootStrap智能表单实战系列(六)表单编辑页面的数据绑定
Jun 13 Javascript
jQuery中实现prop()函数控制多选框(全选,反选)
Aug 19 Javascript
jQuery基本选择器之标签名选择器
Sep 03 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
Jun 16 Javascript
Javascript之图片的延迟加载的实例详解
Jul 24 Javascript
js实现HTML中Select二级联动的实例
Jan 05 Javascript
vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解
May 28 Javascript
搞定immutable.js详细说明
May 02 #Javascript
Immutable 在 JavaScript 中的应用
May 02 #Javascript
基于javascript数组实现图片轮播
May 02 #Javascript
Javascript HTML5 Canvas实现的一个画板
Apr 12 #Javascript
bootstrap3 兼容IE8浏览器!
May 02 #Javascript
javascript实现列表切换效果
May 02 #Javascript
基于javascript编写简单日历
May 02 #Javascript
You might like
PHP中的cookie不用刷新就生效的方法
2012/02/04 PHP
解析dedecms空间迁移步骤详解
2013/05/15 PHP
C/S和B/S两种架构区别与优缺点分析
2014/10/23 PHP
初识Laravel
2014/10/30 PHP
ecshop实现smtp发送邮件
2015/02/03 PHP
PHP版本如何选择?应该使用哪个版本?
2015/05/13 PHP
Thinkphp5.0自动生成模块及目录的方法详解
2017/04/17 PHP
论坛里点击别人帖子下面的回复,回复标题变成“回复 24# 的帖子”
2009/06/14 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/20 Javascript
js实现遍历含有input的table实例
2015/12/07 Javascript
JavaScript判断对象是否为数组
2015/12/22 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
浅谈javascript中遇到的字符串对象处理
2016/11/18 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
2018/09/07 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
2018/12/20 Javascript
jQuery选择器之基本过滤选择器用法实例分析
2019/02/19 jQuery
Jquery动态列功能完整实例
2019/08/30 jQuery
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
Python实现OpenCV的安装与使用示例
2018/03/30 Python
Python利用Scrapy框架爬取豆瓣电影示例
2020/01/17 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
师范应届生教师求职信
2013/11/05 职场文书
年终总结会议主持词
2014/03/17 职场文书
文科毕业生自荐书范文
2014/04/17 职场文书
法人授权委托书范本
2014/09/17 职场文书
第28个世界无烟日活动总结
2015/02/10 职场文书
2015年团队工作总结范文
2015/05/04 职场文书
张思德观后感
2015/06/09 职场文书
员工规章制度范本
2015/08/07 职场文书
《静夜思》教学反思
2016/02/17 职场文书
导游词之苏州阳澄湖
2019/11/15 职场文书
关于golang高并发的实现与注意事项说明
2021/05/08 Golang
聊聊mysql都有哪几种分区方式
2022/04/13 MySQL