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 相关文章推荐
这些年、我收集的JQuery代码小结
Aug 01 Javascript
JQuery插件开发示例代码
Nov 06 Javascript
JavaScript获取表单enctype属性的方法
Apr 02 Javascript
Angular.js实现注册系统的实例详解
Dec 18 Javascript
jquery实现图片上传前本地预览
Apr 28 jQuery
jQuery实现简单的手风琴效果
Apr 17 jQuery
微信小程序实现全国机场索引列表
Jan 31 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
Jun 10 Javascript
Vue中$refs的用法详解
Jun 24 Javascript
Array数组对象中的forEach、map、filter及reduce详析
Aug 02 Javascript
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
May 13 Javascript
简单了解JavaScript作用域
Jul 31 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&amp;&amp;mysql)五
2006/10/09 PHP
深入php处理整数函数的详解
2013/06/09 PHP
php中error与exception的区别及应用
2014/07/28 PHP
yii2 数据库读写分离配置示例
2017/02/10 PHP
PHP 中使用explode()函数切割字符串为数组的示例
2017/05/06 PHP
PHP 加密 Password Hashing API基础知识点
2020/03/02 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
javascript 定义初始化数组函数
2009/09/07 Javascript
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
在浏览器窗口上添加遮罩层的方法
2012/11/12 Javascript
跟我学习javascript的for循环和for...in循环
2015/11/18 Javascript
基于JavaScript获取鼠标位置的各种方法
2015/12/16 Javascript
JS获取checkbox的个数简单实例
2016/08/19 Javascript
Bootstrap框架安装使用详解
2017/01/21 Javascript
js实现文字无缝向上滚动
2017/02/16 Javascript
微信小程序实现点击空白隐藏的方法示例
2019/08/13 Javascript
JS sort方法基于数组对象属性值排序
2020/07/10 Javascript
python实现斐波那契递归函数的方法
2014/09/08 Python
django接入新浪微博OAuth的方法
2015/06/29 Python
Python探索之pLSA实现代码
2017/10/25 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
2018/05/07 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
Python OS模块实例详解
2019/04/15 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
2019/07/22 Python
pyenv与virtualenv安装实现python多版本多项目管理
2019/08/17 Python
python add_argument()用法解析
2020/01/29 Python
Python基于smtplib模块发送邮件代码实例
2020/05/29 Python
python db类用法说明
2020/07/07 Python
Python 虚拟环境工作原理解析
2020/12/24 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
2021/03/03 Python
水果连锁超市创业计划书
2014/01/24 职场文书
教育局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
敬业奉献模范事迹材料
2014/12/24 职场文书
财务负责人岗位职责
2015/02/03 职场文书
基于PyTorch实现一个简单的CNN图像分类器
2021/05/29 Python
Python中异常处理用法
2021/11/27 Python