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 相关文章推荐
JavaScript this调用规则说明
Mar 08 Javascript
JavaScript 构造函数 面相对象学习必备知识
Jun 09 Javascript
javascript代码加载优化方法
Jan 30 Javascript
JS、jquery实现几分钟前、几小时前、几天前等时间差显示效果的代码实例分享
Apr 11 Javascript
JavaScript返回网页中锚点数目的方法
Apr 03 Javascript
jQuery实现点击查看大图并以弹框的形式居中
Aug 08 Javascript
js 获取今天以及过去日期
Apr 11 Javascript
VUE安装使用教程详解
Jun 03 Javascript
vue和iview实现Scroll 数据无限滚动功能
Oct 31 Javascript
一篇超完整的Vue新手入门指导教程
Nov 18 Vue.js
vue element-ul实现展开和收起功能的实例代码
Nov 25 Vue.js
JS前端使用canvas实现物体的点选示例
Aug 05 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
10个超级有用值得收藏的PHP代码片段
2015/01/22 PHP
PHP根据key删除数组中指定的元素
2019/02/28 PHP
javascript Xml增删改查(IE下)操作实现代码
2009/01/30 Javascript
JS多物体 任意值 链式 缓冲运动
2012/08/10 Javascript
AJAX跨域请求json数据的实现方法
2013/11/11 Javascript
jQuery中wrapInner()方法用法实例
2015/01/16 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
分享经典的JavaScript开发技巧
2015/11/21 Javascript
JavaScript的instanceof运算符学习教程
2016/06/08 Javascript
BootStrap使用popover插件实现鼠标经过显示并保持显示框
2016/06/23 Javascript
C#微信小程序服务端获取用户解密信息实例代码
2017/03/10 Javascript
解决vue props 拿不到值的问题
2018/09/11 Javascript
vue-cli项目修改文件热重载失效的解决方法
2018/09/19 Javascript
搭建一个Koa后端项目脚手架的方法步骤
2019/05/30 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
React 条件渲染最佳实践小结(7种)
2020/09/27 Javascript
[01:10:58]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
教你用Python创建微信聊天机器人
2020/03/31 Python
Python实现分段线性插值
2018/12/17 Python
python linecache 处理固定格式文本数据的方法
2019/01/08 Python
浅谈python之高阶函数和匿名函数
2019/03/21 Python
Python使用POP3和SMTP协议收发邮件的示例代码
2019/04/16 Python
kali中python版本的切换方法
2019/07/11 Python
详解Python对JSON中的特殊类型进行Encoder
2019/07/15 Python
详解python中的数据类型和控制流
2019/08/08 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
2020/08/02 Python
基于Python采集爬取微信公众号历史数据
2020/11/27 Python
中专生职业生涯规划书范文
2013/12/29 职场文书
高二英语教学反思
2014/01/19 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
靠谱准确的求职信
2019/04/02 职场文书
会计工作自我鉴定范文
2019/06/21 职场文书
什么是动态刷新率DRR? Windows11动态刷新率功能介绍
2021/11/21 数码科技
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis