无需 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 相关文章推荐
JavaScript的面向对象(二)
Nov 09 Javascript
新鲜出炉的js tips提示效果
Apr 03 Javascript
jQuery 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
May 23 Javascript
JavaScript网页定位详解
Jan 13 Javascript
利用js制作html table分页示例(js实现分页)
Apr 25 Javascript
ExtJS4 表格的嵌套 rowExpander应用
May 02 Javascript
javascript实现全局匹配并替换的方法
Apr 27 Javascript
高性能JavaScript 重排与重绘(2)
Aug 11 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
Dec 17 Javascript
浅谈javascript alert和confirm的美化
Dec 15 Javascript
10种JavaScript最常见的错误(小结)
Jun 21 Javascript
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
Jul 28 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 字符串压缩方法比较示例
2014/01/23 PHP
深入理解PHP中的global
2014/08/19 PHP
浅析THINKPHP的addAll支持的最大数据量
2015/02/03 PHP
手把手编写PHP框架 深入了解MVC运行流程
2016/09/19 PHP
php解压缩zip和rar压缩包文件的方法
2019/07/10 PHP
php使用socket调用http和smtp协议实例小结
2019/07/26 PHP
javascript 函数使用说明
2010/04/07 Javascript
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
用javascript为页面添加天气显示实现思路及代码
2013/12/02 Javascript
原生JavaScript+LESS实现瀑布流
2014/12/12 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
Javascript实现可旋转的圆圈实例代码
2015/08/04 Javascript
js实现增加数字显示的环形进度条效果
2017/02/05 Javascript
bootstrap vue.js实现tab效果
2017/02/07 Javascript
JavaScript学习总结之正则的元字符和一些简单的应用
2017/06/30 Javascript
react-native 圆弧拖动进度条实现的示例代码
2018/04/12 Javascript
vue.js实现带日期星期的数字时钟功能示例
2018/08/28 Javascript
微信小程序实现随机验证码功能
2018/12/20 Javascript
JavaScript实现shuffle数组洗牌操作示例
2019/01/03 Javascript
axios实现简单文件上传功能
2019/09/25 Javascript
vue滑动吸顶及锚点定位的示例代码
2020/05/10 Javascript
在Python中操作文件之seek()方法的使用教程
2015/05/24 Python
python字典基本操作实例分析
2015/07/11 Python
使用Python中的tkinter模块作图的方法
2017/02/07 Python
使用html2canvas实现浏览器截图的示例代码
2018/01/26 HTML / CSS
ebookers英国:隶属全球最大的在线旅游公司Expedia
2017/12/28 全球购物
校园报刊亭的创业计划书
2014/01/02 职场文书
2014年党的群众路线整改措施思想汇报
2014/10/12 职场文书
党的群众路线教育实践活动督导组工作情况汇报
2014/10/28 职场文书
2014年办公室文员工作总结
2014/11/12 职场文书
2014年建筑工程工作总结
2014/12/03 职场文书
2015年校长新年寄语
2014/12/08 职场文书
优秀团员个人总结
2015/02/26 职场文书
2015年学校后勤工作总结
2015/04/08 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书
导游词之镜泊湖
2019/12/09 职场文书