jQuery-zclip是一个复制内容到剪贴板的jQuery插件,使用它我们不用考虑不同浏览器和浏览器版本之间的兼容问题。jQuery-zclip插件需要Flash的支持,使用时记得安装Adobe Flash Player。
1、jQuery-zclip插件官网
ZeroClipboard.swf下载地址
2、jQuery-zclip用法
//引入jQuery-zclip相关js及swf文件 <script type="text/javascript" src="<%=path%>/resources/js/jquery.min.js"></script> <script type="text/javascript" src="<%=path%>/resources/js/jquery.zclip.min.js"></script> <script type="text/javascript"> $(function(){ $("#cp-btn").zclip({ path:'<%=path%>/resources/js/ZeroClipboard.swf', //记得把ZeroClipboard.swf引入到项目中 copy:function(){ return $('#inviteUrl').val(); } }); }); </script> <div class=form-row> <div class=col-md-5> <input class=form-control value="" id="inviteUrl"/> </div> <div class=col-md-1> <a href="javascript:void(0)" id="cp-btn" class="btn btn-default btn-block btn-clean">复 制</a> </div> </div>
配置说明
path:swf的路径(复制主要是用flash解决不同浏览器的复制)
copy:待复制的内容, 可以是静态内容, 也可以 return 动态内容
beforeCopy:复制之前要做的function;
afterCopy:复制之后要做的function;
提供了3个方法
show:$(selected).zclip('show');//复制功能有效
hide:$(selected).zclip('hide');//复制功能无效
remove:$(selected).zclip('remove');//完全移除复制功能
3、演示效果
运行成功后,点击复制按钮,会弹出一个提示框,表示复制到剪切板生效了,如下:
弹出框出现“Copied text to clipboard”英文字符,有点不符国人使用习惯,把它改为“成功复制到剪切板”,在jquery.zclip.min.js文件中找到“Copied text to clipboard”替换成“成功复制到剪切板”就可以了,效果如下:
-===================================分隔符====================================
以上是转载而来,也是自己参考的源.
附上一点自己所测试通过的代码,很简单的一个单页面实现复制功能,复制即可测试成功(必须在有服务器的环境下,比如tomcat),注意点:
1.zclip.js文件与<pre name="code" class="html" style="color: rgb(75, 75, 75); font-size: 13px; line-height: 19.5px;">zclip.swf必须保存在一个目录下,我是直接保存在js/下的
2.在测试没有通过的情况下,有可能是代码写错,仔细检查,我之前犯了急促错误
3.zclip.min.js与zclip.js有差距,zclip.min.js是精简版本
</pre><pre name="code" class="html" style="color: rgb(75, 75, 75); font-size: 13px; line-height: 19.5px;">附上:自己找了很久找到的dome <a target=_blank href="http://download.csdn.net/detail/dcb_ripple/9381291">http://download.csdn.net/detail/dcb_ripple/9381291</a>
然后也有一个问题,困扰着(表示也算新人所以没找到解决方案),
在单击复制按钮时,理想情况下用onclick来进行对 复制按钮的绑定,但问题出现于 zclip实现在于提前为按钮进行值的绑定,而在此情景下单击复制,在进行绑定时则产生了冲突,也就无法进行一个正确的绑定,再者zclip的绑定一个id绑定一个值.
表示未解决...
</pre><pre name="code" class="html" style="color: rgb(75, 75, 75); font-size: 13px; line-height: 19.5px;">
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <script type="text/javascript" src="http://www.daimajiayuan.com/templets/skins/js/jquery-1.8.1.min.js"></script> <script src="js/jquery.zclip.min.js"></script> <input type="text" value="www.baidu.com" id="link"/> <input type="button" value="复制" id="copyBtn"/> <input type="button" onclick="test()" value="11111"> <input type="checkbox" checked="checked" value="123" >是否选中 <script type="text/javascript"> function test(){ //理解为,帮复制按钮绑定一个事件,然后给它指定好值 $('#copyBtn').zclip({ path: "js/ZeroClipboard.swf", copy: function(){ return $('#link').val(); } }); } </script> </body> </html> <!-- 第二种方式,个人觉得这样会比较鸡肋,灵活性不高,但是确实可行 这个直接复制就测试就可以实现 <textarea id="content" rows="10" cols="60">这里是需要复制的内容这特么明显的有问题存在1~</textarea> <input id="copy" type="button" data-clipboard-target="content" value="复制"> <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/zeroclipboard/2.1.6/ZeroClipboard.min.js" ></script> <script type="text/javascript"> // 将【复制】按钮充当复制数据的元素载体 var clip = new ZeroClipboard(document.getElementById("copy") ); </script> -->