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 相关文章推荐
JavaScipt基本教程之JavaScript语言的基础
Jan 16 Javascript
js不能跳转到上一页面的问题解决方法
Mar 01 Javascript
js 判断图片是否加载完以及实现图片的预下载
Aug 14 Javascript
5种处理js跨域问题方法汇总
Dec 04 Javascript
原生js实现类似弹窗抖动效果
Apr 02 Javascript
AngularJS基础教程之简单介绍
Sep 27 Javascript
一道关于JavaScript变量作用域的面试题
Mar 08 Javascript
jquery判断页面网址是否有效的两种方法
Dec 11 Javascript
JavaScrpt的面向对象全面解析
May 09 Javascript
AngularJS select加载数据选中默认值的方法
Feb 28 Javascript
vue 查看dist文件里的结构(多种方式)
Jan 17 Javascript
原生JavaScript实现进度条
Feb 19 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四舍五入、取整、round函数使用示例
2015/02/06 PHP
php实现的一个简单json rpc框架实例
2015/03/30 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
2018/01/29 PHP
PJBlog插件 防刷新的在线播放器
2006/10/25 Javascript
Web版彷 Visual Studio 2003 颜色选择器
2007/01/09 Javascript
javascript面向对象的方式实现的弹出层效果代码
2010/01/28 Javascript
关于JavaScript中string 的replace
2013/04/12 Javascript
javascript使用定时函数实现跳转到某个页面
2013/12/25 Javascript
Js实现手机发送验证码时按钮延迟操作
2014/06/20 Javascript
javascript中判断json的方法总结
2015/08/27 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
2016/08/24 Javascript
基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)
2016/09/02 Javascript
详解jQuery简单的表单应用
2016/12/16 Javascript
vue中将网页打印成pdf实例代码
2017/06/15 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
详解nodejs通过响应回写的方式渲染页面资源
2018/04/07 NodeJs
layui导出所有数据的例子
2019/09/10 Javascript
解决ant Design中this.props.form.validateFields未执行的问题
2020/10/27 Javascript
python图像处理之镜像实现方法
2015/05/30 Python
Pandas DataFrame 取一行数据会得到Series的方法
2018/11/10 Python
django认证系统 Authentication使用详解
2019/07/22 Python
[原创]赚疯了!转手立赚800+?大佬的python「抢茅台脚本」使用教程
2021/01/12 Python
image-set实现Retina屏幕下图片显示详细介绍
2012/12/24 HTML / CSS
css3弹性盒模型实例介绍
2013/05/27 HTML / CSS
CSS3 对过渡(transition)进行调速以及延时
2020/10/21 HTML / CSS
解锁canvas导出图片跨域的N种姿势小结
2019/01/24 HTML / CSS
中国一家综合的外贸B2C电子商务网站:DealeXtreme(DX)
2020/03/10 全球购物
投标承诺书怎么写
2014/05/24 职场文书
2014年“向国旗敬礼”网上签名寄语活动方案
2014/09/27 职场文书
机关作风建设自查报告及整改措施
2014/10/21 职场文书
党员群众路线学习心得体会
2014/11/04 职场文书
人事局接收函
2015/01/31 职场文书
清洁工工作总结
2015/08/11 职场文书
python爬取网页版QQ空间,生成各类图表
2021/06/02 Python
使用vuex-persistedstate本地存储vuex
2022/04/29 Vue.js