无需 Flash 使用 jQuery 复制文字到剪贴板


Posted in Javascript onApril 26, 2016

如果在网上找一个关于如何将一段特定的文本拷贝到剪贴板的解决方案,最可能的结果就是使用Flash的方案来做这个事,虽然使用Flash可以很好地解决这个问题,但是这不是一个明智的想法,因为这个产品最终会消失或者至少是浏览器不再提供支持,因此这个解决方案是没有未来的。虽然可以使用jQuery或者纯JavaScript,甚至完全自己写,但是当有人已经创建了一个解决方案,那么为什么还要重复发明轮子呢?让我们一起看看Clipboard.js吧。

Clipboard.js删除了Flash组件并且优雅地解决了这个问题,需要做的只是引入其脚本,在HTML标签上赋一个“data-clipboard-target”属性然后写一小段JavaScript片段。为了演示假定有一个货币转换应用,在一个文本框中输入数值时同时将兑换结果显示在另一个文本框中,当点击文本框时,会触发事件将其复制到剪贴板然后显示一条消息。 无需 Flash 使用 jQuery 复制文字到剪贴板

下面是我的实现。

假如这是你的文本框。(我使用MVC框架创建我的应用程序)

<divclass="row"><divclass="col-md-6">From<divclass="input-group">
<divclass="input-group-addon">$</div>
@Html.EditorFor(model=>model.AmountFrom,new{htmlAttributes=new{@class="form-controlinput-largest",@step="0.01",@type="number"}})
</div></div><divclass="col-md-6">To<divclass="input-group"><divclass="input-group-addon">$
</div><inputtype="text"id="AmountTo"value="@Model.AmountTo"class="form-controlinput-largest"readonlydata-clipboard-action="copy"data-clipboard-target="#AmountTo"/>
</div>
</div>
</div>

你有没有注意到我有一个 AmountTo和 一个AmountFrom,AmountTo是输入AmountFrom 是输出 ,当我们点击这个的时候其值就会传给剪切板。这个神奇的事情发生在属性“data-clipboard-target”里面。

我们也添加一个消息框用来显示拷贝动作消息

<divclass="row">
<divclass="col-md-6"><br/>
<spanid="messageBox"class="text-success"style="display:block;text-align:center"></span></div></div>

到这里就是你所关心的HTML部分。现在让我们去看JavaScript/jQuery 部分

<scriptsrc="~/Scripts/clipboard.min.js">
</script>
<script>varclipboard=newClipboard('#AmountTo');
clipboard.on('success',function(e){$("#messageBox").text("AmountSuccessfullyCopied!").show().fadeOut(2000);e.clearSelection();});clipboard.on('error',function(e){$("#messageBox").text("ErrorCopyingAmount").show().fadeOut(2000);});$('#AmountFrom').click(function(){$("#AmountFrom").val("");});
</script>

至此,会发现我们只是引入了clipoard.js,如果实例化Clipboard成功,然后会给事件赋予一些动作,否则它会触发一个错误,是这样吧?这一切都很好,它能兼容所有最新的浏览器,除了IE,它会给出下面这样的一个消息。

无需 Flash 使用 jQuery 复制文字到剪贴板

如果希望看一下实际的效果,这是一个JSFiddle示例。

接下来就是抓取剪贴板的数据然后当点击时自动地粘贴到一个文本框,至此,看上去浏览器因为一个安全上的风险会阻止它,但是我会尝试找到甚至做出一个方案,因此大家还得继续关注。

Javascript 相关文章推荐
iframe 自适应高度[在IE6 IE7 FF下测试通过]
Apr 13 Javascript
Mootools 1.2教程 排序类和方法简介
Sep 15 Javascript
JQuery中对Select的option项的添加、删除、取值
Aug 25 Javascript
String.prototype实现的一些javascript函数介绍
Nov 22 Javascript
js使用心得分享
Jan 13 Javascript
关于网页中的无缝滚动的js代码
Jun 09 Javascript
关于javascript原型的修改与重写(覆盖)差别详解
Aug 31 Javascript
AngularJS入门教程之过滤器用法示例
Nov 02 Javascript
详解vue-cli3开发Chrome插件实践
May 29 Javascript
JS开发 富文本编辑器TinyMCE详解
Jul 19 Javascript
jquery实现图片无缝滚动 蒙版遮蔽效果
Jan 11 jQuery
Node.js API详解之 net模块实例分析
May 18 Javascript
JavaScript事件处理的方式(三种)
Apr 26 #Javascript
学习AngularJs:Directive指令用法(完整版)
Apr 26 #Javascript
jQuery siblings()用法实例详解
Apr 26 #Javascript
JQuery插件Marquee.js实现无缝滚动效果
Apr 26 #Javascript
Angular.js回顾ng-app和ng-model使用技巧
Apr 26 #Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
Apr 26 #Javascript
Bootstrap网格系统详解
Apr 26 #Javascript
You might like
深入解析php模板技术原理【一】
2008/01/10 PHP
asp和php下textarea提交大量数据发生丢失的解决方法
2008/01/20 PHP
php读取javascript设置的cookies的代码
2010/04/12 PHP
.htaccess文件保护实例讲解
2011/02/06 PHP
Windows下的PHP安装pear教程
2014/10/24 PHP
php文件读取方法实例分析
2015/06/20 PHP
教你识别简单的免查杀PHP后门
2015/09/13 PHP
PHP判断是否是微信打开,浏览器打开的方法
2018/03/14 PHP
YII框架http缓存操作示例
2019/04/29 PHP
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
javascript函数自动执行常用方法汇总
2016/03/28 Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
2017/01/23 Javascript
Bootstrap下拉菜单样式
2017/02/07 Javascript
Move.js入门
2017/02/08 Javascript
js判断是否是手机页面
2017/03/17 Javascript
javascript实现多张图片左右无缝滚动效果
2017/03/22 Javascript
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
Vue监听页面刷新和关闭功能
2019/06/20 Javascript
微信小程序自定义弹窗实现详解(可通用)
2019/07/04 Javascript
在Vue项目中使用Typescript的实现
2019/12/19 Javascript
webpack+vue.js构建前端工程化的详细教程
2020/05/10 Javascript
vue-socket.io接收不到数据问题的解决方法
2020/05/13 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
Vue组件简易模拟实现购物车
2020/12/21 Vue.js
Python实现一个简单的MySQL类
2015/01/07 Python
基于python yield机制的异步操作同步化编程模型
2016/03/18 Python
python文字转语音的实例代码分析
2019/11/12 Python
Python定义函数时参数有默认值问题解决
2019/12/19 Python
Python编程快速上手——strip()函数的正则表达式实现方法分析
2020/02/29 Python
使用Pyhton 分析酒店针孔摄像头
2020/03/04 Python
CSS中垂直居中的简单实现方法
2015/07/06 HTML / CSS
汉森批发:Hansen Wholesale
2018/05/24 全球购物
关于环保的建议书400字
2014/03/12 职场文书
小学运动会班级口号
2014/06/09 职场文书
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python