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 相关文章推荐
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
Oct 08 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
Nov 20 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
Apr 01 Javascript
微信小程序链接传参并跳转新页面
Nov 29 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
Mar 10 Javascript
jQuery remove()过滤被删除的元素(推荐)
Jul 18 jQuery
深入理解React高阶组件
Sep 28 Javascript
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
Oct 31 Javascript
ng-zorro-antd 入门初体验
Dec 03 Javascript
javascript实现5秒倒计时并跳转功能
Jun 20 Javascript
JS实现滑动导航效果
Jan 14 Javascript
如何用JS实现简单的数据监听
May 06 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
7个超级实用的PHP代码片段
2011/07/11 PHP
基于PHP文件操作的详细诠释
2013/06/21 PHP
实例介绍PHP的Reflection反射机制
2014/08/05 PHP
php操作mongoDB实例分析
2014/12/29 PHP
php模拟用户自动在qq空间发表文章的方法
2015/01/07 PHP
tp5.1 实现setInc字段自动加1
2019/10/18 PHP
Laravel基础-关于引入公共文件的两种方式
2019/10/18 PHP
JS Date函数整理方便使用
2013/10/23 Javascript
如何从jQuery的ajax请求中删除X-Requested-With
2013/12/11 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
Javascript继承机制详解
2017/05/30 Javascript
JavaScript 数组的进化与性能分析
2017/09/18 Javascript
js处理包含中文的字符串实例
2017/10/11 Javascript
vue引入js数字小键盘的实现代码
2018/05/14 Javascript
使用jquery DataTable和ajax向页面显示数据列表的方法
2018/08/09 jQuery
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
2019/04/20 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
2019/06/19 Javascript
layui输入框中只允许输入整数的实现方法
2019/09/18 Javascript
jQuery实现颜色打字机的完整代码
2020/03/19 jQuery
JS判断浏览器类型与操作系统的方法分析
2020/04/30 Javascript
js实现前端界面导航栏下拉列表
2020/08/27 Javascript
[01:00:12]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第一场
2018/04/09 DOTA
详解Python中open()函数指定文件打开方式的用法
2016/06/04 Python
python实现聚类算法原理
2018/02/12 Python
Python实现随机生成手机号及正则验证手机号的方法
2018/04/25 Python
美国宠物美容和宠物用品购物网站:Cherrybrook
2018/12/07 全球购物
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
服装销售人员求职自我评价
2013/09/26 职场文书
土木工程专业个人求职信
2013/12/30 职场文书
技校毕业生自荐信
2014/06/03 职场文书
学校领导班子四风对照检查材料
2014/09/27 职场文书
个人求职信格式范文
2015/03/20 职场文书
物业项目经理岗位职责
2015/04/01 职场文书
2015年信贷员工作总结
2015/04/28 职场文书
2015年公路养护工作总结
2015/05/13 职场文书