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 相关文章推荐
Windows8下搭建Node.js开发环境教程
Sep 03 Javascript
使用jquery+CSS实现控制打印样式
Dec 31 Javascript
Jquery easyui 实现动态树
Nov 17 Javascript
javascript实现简单的全选和反选功能
Jan 05 Javascript
微信小程序 location API实例详解
Oct 02 Javascript
JS动态计算移动端rem的解决方案
Oct 14 Javascript
js实现小窗口拖拽效果
Dec 03 Javascript
js判断文件类型大小并给出提示的实现方法
Jan 03 Javascript
ajax前台后台跨域请求处理方式
Feb 08 Javascript
详解vue表单——小白速看
Apr 08 Javascript
浅谈vue中组件绑定事件时是否加.native
Nov 09 Javascript
在vue-cli创建的项目中使用sass操作
Aug 10 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/js获取客户端mac地址的实现代码
2013/07/08 PHP
php去掉文件前几行的方法
2015/07/29 PHP
Laravel 5.4向IoC容器中添加自定义类的方法示例
2017/08/15 PHP
JavaScript 实现??打印?理
2007/04/28 Javascript
jQuery select控制插件
2009/08/17 Javascript
javascript window.opener的用法分析
2010/04/07 Javascript
JavaScript使用IEEE 标准进行二进制浮点运算产生莫名错误的解决方法
2011/05/28 Javascript
jquery表单验证使用插件formValidator
2012/11/10 Javascript
用表格输出1-1000之间的数字实现代码(附特效)
2013/04/21 Javascript
你必须知道的Javascript知识点之&quot;单线程事件驱动&quot;的使用
2013/04/23 Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
2013/06/06 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
JS或jQuery获取ASP.NET服务器控件ID的方法
2015/06/08 Javascript
JavaScript类型系统之基本数据类型与包装类型
2016/01/06 Javascript
使用Object.defineProperty实现简单的js双向绑定
2016/04/15 Javascript
AngularJS ng-controller 指令简单实例
2016/08/01 Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
2017/06/13 Javascript
JavaScript实现简单图片轮播效果
2017/08/21 Javascript
在Vue组件上动态添加和删除属性方法
2018/02/23 Javascript
ES6 中可以提升幸福度的小功能
2018/08/06 Javascript
node.js实现为PDF添加水印的示例代码
2018/12/05 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
Python 获取项目根路径的代码
2019/09/27 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
Python3.9又更新了:dict内置新功能
2020/02/28 Python
python爬虫工具例举说明
2020/11/30 Python
css3中新增的样式使用示例附效果图
2014/08/19 HTML / CSS
最畅销的视频游戏享受高达90%的折扣:CDKeys
2020/02/10 全球购物
JAVA程序设计笔试题面试题一套
2015/07/28 面试题
在校硕士自我鉴定
2014/01/23 职场文书
医学生毕业自我鉴定
2014/03/26 职场文书
活动策划求职信模板
2014/04/21 职场文书
健康家庭事迹材料
2014/05/02 职场文书
英语导游词
2015/02/13 职场文书
军训阅兵新闻稿
2015/07/17 职场文书
浅谈CSS不规则边框的生成方案
2021/05/25 HTML / CSS