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实现仿Windows关机效果
Mar 10 Javascript
Javascript代码在页面加载时的执行顺序介绍
May 03 Javascript
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
May 27 Javascript
如何判断鼠标是否在DIV的区域内
Nov 13 Javascript
javascript实现动态模态绑定grid过程代码
Sep 22 Javascript
JavaScript实现的圆形浮动标签云效果实例
Aug 06 Javascript
AngularJS 整理一些优化的小技巧
Aug 18 Javascript
详解Node.js开发中的express-session
May 19 Javascript
vue实现文章内容过长点击阅读全文功能的实例
Dec 28 Javascript
基于vue实现可搜索下拉框定制组件
Mar 26 Javascript
微信小程序实现点击按钮后修改颜色
Dec 05 Javascript
JavaScript事件概念详解(区分静态注册和动态注册)
Feb 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
php获得文件扩展名三法
2006/11/25 PHP
PHP UTF8中文字符截断函数代码
2012/09/11 PHP
PHP禁止个别IP访问网站
2013/10/30 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
jquery 操作表格实现代码(多种操作打包)
2011/03/20 Javascript
javascript中的self和this用法小结
2014/02/08 Javascript
jQuery拖动div、移动div、弹出层实现原理及示例
2014/04/08 Javascript
JS对img标签进行优化使用onerror显示默认图像
2014/04/24 Javascript
JavaScript实现在标题栏上显示当前日期的方法
2015/03/19 Javascript
javascript中字体浮动效果的简单实例演示
2015/11/18 Javascript
BootStrap入门教程(一)之可视化布局
2016/09/19 Javascript
微信小程序表单验证form提交错误提示效果
2020/06/19 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
2019/08/28 Javascript
Vue实现Layui的集成方法步骤
2020/04/10 Javascript
node.js爬虫框架node-crawler初体验
2020/10/29 Javascript
[58:46]OG vs NAVI 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python实现连接mongodb的方法
2015/05/08 Python
详谈Python2.6和Python3.0中对除法操作的异同
2017/04/28 Python
Python读写/追加excel文件Demo分享
2018/05/03 Python
django2用iframe标签完成网页内嵌播放b站视频功能
2018/06/20 Python
python抓取需要扫微信登陆页面
2019/04/29 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
2019/06/27 Python
Python实现屏幕录制功能的代码
2020/03/02 Python
解决django中form表单设置action后无法回到原页面的问题
2020/03/13 Python
你应该知道的Python3.6、3.7、3.8新特性小结
2020/05/12 Python
5 分钟读懂Python 中的 Hook 钩子函数
2020/12/09 Python
python Pexpect模块的使用
2020/12/25 Python
史上最详细的Python打包成exe文件教程
2021/01/17 Python
用css3制作纸张效果(外翻卷角)
2013/02/01 HTML / CSS
全球最大运动品牌的男装、女装和童装官方库存商:A&A Sports
2021/01/17 全球购物
软件测试工程师结构化面试题库
2016/11/23 面试题
空乘英文求职信
2014/04/13 职场文书
离职保密承诺书
2014/05/28 职场文书
Python实战之实现康威生命游戏
2021/04/26 Python
python 如何执行控制台命令与操作剪切板
2021/05/20 Python