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 相关文章推荐
Ubuntu 11.10 安装Node.js的方法
Nov 30 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
Dec 02 Javascript
新增加的内容是如何将div的scrollbar自动移动最下面
Jan 02 Javascript
js在IE与firefox的差异集锦
Nov 11 Javascript
JavaScript中的变量定义与储存介绍
Dec 31 Javascript
Javascript基础教程之数据类型 (布尔型 Boolean)
Jan 18 Javascript
JavaScript列表框listbox全选和反选的实现方法
Mar 18 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
Nov 26 Javascript
JS简单测试循环运行时间的方法
Sep 04 Javascript
新手vue构建单页面应用实例代码
Sep 18 Javascript
VUE中V-IF条件判断改变元素的样式操作
Aug 09 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
Feb 08 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 存取 MySQL 数据库的一个例子
2006/10/09 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
2019/07/03 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
抽出www.templatemonster.com的鼠标悬停加载大图模板的代码
2007/07/11 Javascript
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
前台js调用后台方法示例
2013/12/02 Javascript
JS网页图片按比例自适应缩放实现方法
2014/01/15 Javascript
javascript常用方法总结
2015/05/14 Javascript
js canvas实现简单的图像扩散效果
2020/06/28 Javascript
jquery实现图片跟随鼠标的实例
2017/10/17 jQuery
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
2019/01/15 Javascript
JavaScript判断对象和数组的两种方法
2019/05/31 Javascript
js实现无缝轮播图
2020/03/09 Javascript
Vue文本模糊匹配功能如何实现
2020/07/30 Javascript
VUE中setTimeout和setInterval自动销毁案例
2020/09/07 Javascript
Openlayers+EasyUI Tree动态实现图层控制
2020/09/28 Javascript
vue3.0 加载json的方法(非ajax)
2020/10/26 Javascript
Python实现的几个常用排序算法实例
2014/06/16 Python
python中将字典转换成其json字符串
2014/07/16 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
2019/07/28 Python
python支持多继承吗
2020/06/19 Python
python中的yield from语法快速学习
2020/11/06 Python
露营世界:Camping World
2017/02/02 全球购物
测绘工程本科生求职信
2013/10/10 职场文书
师范生实习的个人自我鉴定
2013/10/20 职场文书
机电专业毕业生求职信
2013/10/27 职场文书
违反学校规定检讨书
2014/01/18 职场文书
火锅店营销方案
2014/02/26 职场文书
节电标语大全
2014/06/23 职场文书
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
幼儿学前班评语
2014/12/29 职场文书
教师学期末个人总结
2015/02/13 职场文书
家装电话营销开场白
2015/05/29 职场文书
利用html+css实现菜单栏缓慢下拉效果的示例代码
2021/03/30 HTML / CSS
SQL Server删除表中的重复数据
2022/05/25 SQL Server