无需 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 相关文章推荐
jQuery Ajax之$.get()方法和$.post()方法
Oct 12 Javascript
JavaScript移除数组元素减少长度的方法
Sep 05 Javascript
JQuery事件e参数的方法preventDefault()取消默认行为
Sep 26 Javascript
JS创建自定义表格具体实现
Feb 11 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
Feb 20 Javascript
JS实现自动变化的导航菜单效果代码
Sep 09 Javascript
移动端日期插件Mobiscroll.js使用详解
Dec 19 Javascript
微信小程序 后台登录(非微信账号)实例详解
Mar 31 Javascript
详解vue如何使用rules对表单字段进行校验
Oct 17 Javascript
深入理解移动前端开发之viewport
Oct 19 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
Oct 25 Javascript
vue组件 keep-alive 和 transition 使用详解
Oct 11 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
smarty模板中使用get、post、request、cookies、session变量的方法
2014/04/24 PHP
PHP小教程之实现链表
2014/06/09 PHP
thinkphp 手机号和用户名同时登录
2017/01/20 PHP
Laravel 5.5官方推荐的Nginx配置学习教程
2017/10/06 PHP
PHP封装的简单连接MongoDB类示例
2019/02/13 PHP
javascript 折半查找字符在数组中的位置(有序列表)
2010/12/09 Javascript
网页编辑器ckeditor和ckfinder配置步骤分享
2012/05/24 Javascript
DWZ table的原生分页浅谈
2013/03/01 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
jquery中$each()方法的使用指南
2015/04/30 Javascript
快速解决js开发下拉框中blur与click冲突
2016/10/10 Javascript
AngularJS中指令的四种基本形式实例分析
2016/11/22 Javascript
VUE脚手架的下载和配置步骤详解
2019/04/01 Javascript
vue 实现微信浮标效果
2019/09/01 Javascript
NodeJS有难度的面试题(能答对几个)
2019/10/09 NodeJs
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
python实现比较两段文本不同之处的方法
2015/05/30 Python
Python数据类型详解(四)字典:dict
2016/05/12 Python
python 第三方库的安装及pip的使用详解
2017/05/11 Python
idea创建springMVC框架和配置小文件的教程图解
2018/09/18 Python
python3通过selenium爬虫获取到dj商品的实例代码
2019/04/25 Python
对Python 检查文件名是否规范的实例详解
2019/06/10 Python
python提取log文件内容并画出图表
2019/07/08 Python
sklearn-SVC实现与类参数详解
2019/12/10 Python
如何在django中添加日志功能
2020/02/06 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
2020/02/28 Python
python正则表达式re.match()匹配多个字符方法的实现
2021/01/27 Python
H5 canvas实现贪吃蛇小游戏
2017/07/28 HTML / CSS
美国木工工具和用品商店:Woodcraft
2019/10/30 全球购物
学生鉴定评语大全
2014/05/05 职场文书
2014个人四风对照检查材料思想汇报
2014/09/18 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
销售助理岗位职责
2015/02/11 职场文书
千与千寻观后感
2015/06/04 职场文书
毕业实习证明范本
2015/06/16 职场文书
python某漫画app逆向
2021/03/31 Python