无需 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 居中漂浮广告
Mar 21 Javascript
Javascript 检测键盘按键信息及键码值对应介绍
Jan 03 Javascript
JavaScript中的数值范围介绍
Dec 29 Javascript
ztree获取当前选中节点子节点id集合的方法
Feb 12 Javascript
jQuery实现文本展开收缩特效
Jun 03 Javascript
jQuery validate插件实现ajax验证重复的2种方法
Jan 22 Javascript
js事件处理程序跨浏览器解决方案
Mar 27 Javascript
bootstrapValidator 重新启用提交按钮的方法
Feb 20 Javascript
详解在Vue中通过自定义指令获取dom元素
Mar 04 Javascript
JS验证input输入框(字母,数字,符号,中文)
Mar 23 Javascript
关于Vue项目跨平台运行问题的解决方法
Sep 18 Javascript
解决vue+router路由跳转不起作用的一项原因
Jul 19 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
php4的session功能评述(一)
2006/10/09 PHP
PHP 第二节 数据类型之数值型
2012/04/28 PHP
PHP分多步骤填写发布信息的简单方法实例代码
2012/09/23 PHP
基于jQuery图片平滑连续滚动插件
2009/04/27 Javascript
jqGrid jQuery 表格插件测试代码
2011/08/23 Javascript
分享28款免费实用的 JQuery 图片和内容滑块插件
2014/12/15 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
js实现ifram取父窗口URL地址的方法
2015/02/09 Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
2016/06/07 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
2016/06/29 Javascript
详解Nodejs之npm&amp;package.json
2017/06/15 NodeJs
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
Angular5中状态管理的实现
2018/09/03 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
2018/10/19 Javascript
Angular2 自定义表单验证器的实现方法
2018/12/14 Javascript
Vue基本使用之对象提供的属性功能
2019/04/30 Javascript
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
2019/09/06 Javascript
微信提示 在浏览器打开 效果实现过程解析
2019/09/10 Javascript
bootstrap实现嵌套模态框的实例代码
2020/01/10 Javascript
webpack中的模式(mode)使用详解
2020/02/20 Javascript
[33:42]LGD vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python求斐波那契数列示例分享
2014/02/14 Python
详解Python中的__new__()方法的使用
2015/04/09 Python
浅谈python之高阶函数和匿名函数
2019/03/21 Python
Django如何实现网站注册用户邮箱验证功能
2019/08/14 Python
突袭HTML5之Javascript API扩展3—本地存储全新体验
2013/01/31 HTML / CSS
微软马来西亚官方网站:Microsoft马来西亚
2019/11/22 全球购物
什么是接口(Interface)?
2013/02/01 面试题
超市重阳节活动方案
2014/02/10 职场文书
护理专业毕业生自我鉴定总结
2014/03/24 职场文书
学校教师安全责任书
2014/07/23 职场文书
教师个人自我剖析材料
2014/09/29 职场文书
列车乘务员工作不细心检讨书
2014/10/07 职场文书
置业顾问岗位职责
2015/02/09 职场文书
不负正版帝国之名 《重返帝国》引领SLG手游制作新的标杆
2022/04/07 其他游戏
电脑关机速度很慢怎么办 提升电脑关机速度设置教程
2022/04/08 数码科技