无需 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 相关文章推荐
使用UglifyJS合并/压缩JavaScript的方法
Mar 07 Javascript
jquery mobile事件多次绑定示例代码
Sep 13 Javascript
简单的两种Extjs formpanel加载数据的方式
Nov 09 Javascript
使用CSS样式position:fixed水平滚动的方法
Feb 19 Javascript
js文件Cookie存取值示例代码
Feb 20 Javascript
jQuery自定义数值抽奖活动代码
Jun 11 Javascript
ES6下React组件的写法示例代码
May 04 Javascript
JS实现动态无缝轮播
Jan 11 Javascript
jquery检测上传文件大小示例
Apr 26 jQuery
Vue如何提升首屏加载速度实例解析
Jun 25 Javascript
uniapp开发小程序的经验总结
Apr 08 Javascript
javascript进阶篇深拷贝实现的四种方式
Jul 07 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(windows版本)中的COM函数
2006/10/09 PHP
PHP面向对象分析设计的经验原则
2008/09/20 PHP
php switch语句多个值匹配同一代码块的实现
2014/03/03 PHP
PHP 使用redis简单示例分享
2015/03/05 PHP
Yii2框架自定义验证规则操作示例
2019/02/08 PHP
javascript拖拽应用实例
2016/03/25 Javascript
JS控制静态页面传递参数并获取参数应用
2016/08/10 Javascript
jQuery实现的简单悬浮层功能完整实例
2017/01/23 Javascript
js/jq仿window文件夹框选操作插件
2017/03/08 Javascript
JS实现批量上传文件并显示进度功能
2017/06/27 Javascript
JS设计模式之访问者模式定义与用法分析
2018/02/05 Javascript
学习使用ExpressJS 4.0中的新Router的用法
2018/11/06 Javascript
typescript nodejs 依赖注入实现方法代码详解
2019/07/21 NodeJs
Python操作sqlite3快速、安全插入数据(防注入)的实例
2014/04/26 Python
Python 实现随机数详解及实例代码
2017/04/15 Python
python 实现上传图片并预览的3种方法(推荐)
2017/07/14 Python
Python及Django框架生成二维码的方法分析
2018/01/31 Python
python中(str,list,tuple)基础知识汇总
2018/02/20 Python
python实现Zabbix-API监控
2018/09/17 Python
python: 自动安装缺失库文件的方法
2018/10/22 Python
对python中dict和json的区别详解
2018/12/18 Python
Python根据成绩分析系统浅析
2019/02/11 Python
python 实现读取一个excel多个sheet表并合并的方法
2019/02/12 Python
详解Django-channels 实现WebSocket实例
2019/08/22 Python
Flask 上传自定义头像的实例详解
2020/01/09 Python
Python交互环境下打印和输入函数的实例内容
2020/02/16 Python
css3实现冲击波效果的示例代码
2018/01/11 HTML / CSS
香港彩色隐形眼镜在线商店:Stunninglens(全球免费送货)
2019/05/10 全球购物
Molly Bracken法国电子商店:法国女性时尚品牌
2019/07/24 全球购物
《邮票齿孔的故事》教学反思
2014/02/22 职场文书
管理学院毕业生自荐信范文
2014/03/10 职场文书
销售求职信范文
2014/05/26 职场文书
司法局火灾防控方案
2014/06/05 职场文书
HR在给员工开具离职证明时,需要注意哪些问题?
2019/07/03 职场文书
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js
最新最全的手机号验证正则表达式
2022/02/24 Javascript