无需 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 相关文章推荐
把JS与CSS写在同一个文件里的书写方法
Jun 02 Javascript
js异步加载的三种解决方案
Mar 04 Javascript
JSON传递bool类型数据的处理方式介绍
Sep 18 Javascript
jQuery往返城市和日期查询实例讲解
Oct 09 Javascript
JS获取文件大小方法小结
Dec 08 Javascript
深入理解jquery跨域请求方法
May 18 Javascript
jstl中判断list中是否包含某个值的简单方法
Oct 14 Javascript
实现点击下箭头变上箭头来回切换的两种方法【推荐】
Dec 14 Javascript
javascript完美实现给定日期返回上月日期的方法
Jun 15 Javascript
js实现各浏览器全屏代码实例
Jul 03 Javascript
解决vue 退出动画无效的问题
Aug 09 Javascript
vue操作dom元素的3种方法示例
Sep 20 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 安全过滤函数代码
2011/05/07 PHP
php启用zlib压缩文件的配置方法
2013/06/12 PHP
PHP加密函数 Javascript/Js 解密函数
2013/09/23 PHP
php文件管理基本功能简单操作
2017/01/16 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
2018/04/21 PHP
javascript,jquery闭包概念分析
2010/06/19 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
关于IE BUG与字符串截取substr的解决办法
2013/04/10 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
js实例属性和原型属性示例详解
2014/11/23 Javascript
jQuery EasyUI datagrid实现本地分页的方法
2015/02/13 Javascript
JavaScript中清空数组的方法总结
2016/12/02 Javascript
js正则表达式校验指定字符串的方法
2018/07/23 Javascript
小程序实现多列选择器
2019/02/15 Javascript
Vue组件之高德地图地址选择功能的实例代码
2019/06/21 Javascript
vue更改数组中的值实例代码详解
2020/02/07 Javascript
vue实现匀速轮播效果
2020/06/29 Javascript
[06:53]2018DOTA2国际邀请赛寻真——勇于创新的Vici Gaming
2018/08/14 DOTA
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
Pycharm技巧之代码跳转该如何回退
2017/07/16 Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
2017/07/17 Python
详解Python使用tensorflow入门指南
2018/02/09 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
2019/02/20 Python
python binascii 进制转换实例
2019/06/12 Python
利用python numpy+matplotlib绘制股票k线图的方法
2019/06/26 Python
Python中的self用法详解
2019/08/06 Python
pymysql 插入数据 转义处理方式
2020/03/02 Python
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
加拿大时尚床上用品零售商:QE Home | Quilts Etc
2018/01/22 全球购物
新西兰最大、占有率最高的综合性药房:PharmacyDirect药房中文网
2020/11/03 全球购物
微观物理专业自荐信
2014/01/26 职场文书
技校毕业生个人学习的自我评价
2014/02/21 职场文书
婚庆司仪主持词
2014/03/15 职场文书
结婚保证书(三从四德)
2015/02/26 职场文书
Python的三个重要函数详解
2022/01/18 Python
如何Python使用re模块实现okenizer
2022/04/30 Python