Jquery跨浏览器文本复制插件Zero Clipboard的使用方法


Posted in Javascript onFebruary 28, 2016

当开发者需要对某局部文本进行点击复制效果时,在IE下实现比较简单。但要想做到跨浏览器比较困难了。Zero Clipboard 它利用 Flash 进行复制,所以只要浏览器装有 Flash 就可以运行,而且比IE的document.execCommand(“Copy”) 更加灵活。

Zero Clipboard 的实现原理

Zero Clipboard 利用 Flash 进行复制,之前有 Clipboard Copy 解决方案,其利用的是一个隐藏的 Flash。但最新的 Flash Player 10 只允许在 Flash 上进行操作才能启动剪贴板。所以 Zero Clipboard 对此进行了改进,用了一个透明的 Flash ,让其漂浮在按钮之上,这样其实点击的不是按钮而是 Flash ,也就可以使用 Flash 的复制功能了。

Zero Clipboard 特点介绍:
兼容支持Flash 10
避免使用第三方浏览器插件(的Adobe Flash浏览器中的安全冲突)
无形的覆盖,无干扰,页面设计
支持CSS“悬停”和“活跃”状态
保留目标元素的“点击”,”mouseenter”和”mouseleave”的事件
供应回调函数“复制前”和“复制”
极轻的重量! (7KB精缩)

首先下载 Zero Clipboard ,并解压缩。其中需要两个文件:ZeroClipboard.js 和 ZeroClipboard.swf ,将这两个文件放入到你的项目中。
点击下载:jquery.zclip.1.1.1

用法:

1.) 首先引入核心文件

<script type="text/javascript" src="js/jquery.js"></script>

<script type="text/javascript" src="js/jquery.zclip.js"></script>

2.) 在页面代码里写入功能模块,定义copy复制按钮元素属性信息

<script language="javascript">
$(document).ready(function(){
 
    $('a#copy-description').zclip({
        path:'js/ZeroClipboard.swf',
        copy:$('p#description').text()
    });
 
    // The link with ID "copy-description" will copy
    // the text of the paragraph with ID "description"
 
 
    $('a#copy-dynamic').zclip({
        path:'js/ZeroClipboard.swf',
        copy:function(){return $('input#dynamic').val();}
    });
 
    // The link with ID "copy-dynamic" will copy the current value
    // of a dynamically changing input with the ID "dynamic"
 
});
</script>

例一:

<a href="#" id="copy-description">点击复制效果预览</a>

<p id="description">文本源……</p>

例二:

<a href="#" id="copy-dynamic">点击复制效果预览:</a><input style="width:300px; margin-left:15px;" type="text" id="dynamic" value="Insert any text here." onfocus="if(this.value=='Insert any text here.'){this.value=''}" onblur="if(this.value==''){this.value='Insert any text here.'}" />

3.) 供应定制的回调函数。

<script language="javascript">
$(document).ready(function(){
 
    $("a#copy-callbacks").zclip({
        path:'js/ZeroClipboard.swf',
        copy:$('#callback-paragraph').text(),
        beforeCopy:function(){
            $('#callback-paragraph').css('background','yellow');
            $(this).css('color','orange');
        },
        afterCopy:function(){
            $('#callback-paragraph').css('background','green');
            $(this).css('color','purple');
            $(this).next('.check').show();
        }
    });
 
});
</script>

3.) 默认参数。

扩展介绍:
1.) 测试兼容IE6,IE7,IE8,FF 3.6,Chrome浏览器8,Safari 5的,歌剧11
2.) 适当的CSS特效:

/* zClip is a flash overlay, so it must provide */

/* the target element with "hover" and "active" classes */

/* to simulate native :hover and :active states. */

/* Be sure to write your CSS as follows for best results: */

 

/*大概意思就是说 ZeroClip是flash叠加……就是说flash叠加在了text文本上,其实显示文字可以根据css来定义*/

a:hover, a.hover {...}

a:active, a.active {...}

在线演示:
1、http://demo.3water.com/js/2016/jquery_zclip/demo1.html
2、http://demo.3water.com/js/2016/jquery_zclip/demo2.html

至此,该插件使用方法已经介绍结束,对于使用者的开发者来说,剩下的扩展方面就要根据需求而定了。

Javascript 相关文章推荐
又一个小巧的图片预加载类
May 05 Javascript
json-lib出现There is a cycle in the hierarchy解决办法
Feb 24 Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
Jul 12 Javascript
在百度知道团队中快速审批新成员的js脚本
Feb 02 Javascript
AngularJS+Node.js实现在线聊天室
Aug 28 Javascript
Javascript页面跳转常见实现方式汇总
Nov 28 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
Jun 13 Javascript
jQuery 生成svg矢量二维码
Aug 09 Javascript
微信小程序图表插件(wx-charts)实例代码
Jan 17 Javascript
JS实现查找数组中对象的属性值是否存在示例
May 24 Javascript
Electron vue的使用教程图文详解
Jul 05 Javascript
JavaScript实现指定数量的并发限制的示例代码
Mar 10 Javascript
JavaScript实现iframe自动高度调整和不同主域名跨域
Feb 27 #Javascript
Javascript技术栈中的四种依赖注入小结
Feb 27 #Javascript
javascript的 {} 语句块详解
Feb 27 #Javascript
javascript中eval解析JSON字符串
Feb 27 #Javascript
javascript先序遍历DOM树的方法
Feb 27 #Javascript
JavaScript开发者必备的10个Sublime Text插件
Feb 27 #Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
Feb 27 #Javascript
You might like
php操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
Yii实现多按钮保存与提交的方法
2014/12/03 PHP
四个PHP非常实用的功能
2015/09/29 PHP
thinkphp微信开发(消息加密解密)
2015/12/02 PHP
如何写php守护进程(Daemon)
2015/12/30 PHP
php将print_r处理后的数据还原为原始数组的解决方法
2016/11/02 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
利用PHP访问带有密码的Redis方法示例
2017/02/09 PHP
用js实现的自定义的对话框的实现代码
2010/03/21 Javascript
JS 操作符整理[推荐收藏]
2011/11/15 Javascript
js中用window.open()打开多个窗口的name问题
2014/03/13 Javascript
AngularJS中的Directive自定义一个表格
2016/01/25 Javascript
Bootstrap每天必学之折叠(Collapse)插件
2016/04/25 Javascript
javascript三种代码注释方法
2016/06/02 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
2016/07/25 Javascript
js遍历map javaScript遍历map的简单实现
2016/08/26 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
jQuery中的select操作详解
2016/11/29 Javascript
vue项目实现github在线预览功能
2018/06/20 Javascript
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
JS实现随机点名器
2020/04/12 Javascript
python处理圆角图片、圆形图片的例子
2014/04/25 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
pytorch 修改预训练model实例
2020/01/18 Python
python 字符串的驻留机制及优缺点
2020/06/19 Python
菲律宾酒店预订网站:Hotels.com菲律宾
2017/07/12 全球购物
德国高品质男装及配饰商城:Cultizm(Raw Denim原色牛仔裤)
2018/04/16 全球购物
买卖正宗运动鞋:GOAT
2019/12/06 全球购物
领先的荷兰线上超市:荷兰之家Holland at Home(支持中文)
2021/01/21 全球购物
小学生自我评价范例
2013/09/24 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
延安红色之旅心得体会
2014/10/07 职场文书
2014村党支部书记党建工作汇报材料
2014/11/02 职场文书
初三学生语文考试作弊检讨书
2014/12/14 职场文书
小区物业管理2015年度工作总结
2015/10/22 职场文书