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 相关文章推荐
Js callBack 返回前一页的js方法
Nov 30 Javascript
浅析node.js中close事件
Nov 26 Javascript
分享20个提升网站界面体验的jQuery插件
Dec 15 Javascript
jQuery中:header选择器用法实例
Dec 29 Javascript
jQuery实现复选框的全选和反选
Feb 02 Javascript
微信小程序 弹幕功能简单实例
Feb 14 Javascript
jQuery实现百度登录框的动态切换效果
Apr 21 jQuery
JS实现方形抽奖效果
Aug 27 Javascript
通过vue手动封装on、emit、off的代码详解
May 29 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
Sep 03 Javascript
Vue请求java服务端并返回数据代码实例
Nov 28 Javascript
Vue+Node服务器查询Mongo数据库及页面数据传递操作实例分析
Dec 20 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
用mysql_fetch_array()获取当前行数据的方法详解
2013/06/05 PHP
js 中{},[]中括号,大括号使用详解
2011/05/12 Javascript
js实现百度联盟中一款不错的图片切换效果完整实例
2015/03/04 Javascript
JavaScript中return false的用法
2015/03/12 Javascript
JavaScript随机生成信用卡卡号的方法
2015/04/07 Javascript
基于jquery实现智能提示控件intellSeach.js
2016/03/17 Javascript
JavaScript中清空数组的方法总结
2016/12/02 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
2018/03/28 Javascript
javascrit中undefined和null的区别详解
2019/04/07 Javascript
原生js实现3D轮播图
2020/03/21 Javascript
node+multer实现图片上传的示例代码
2020/02/18 Javascript
js实现文字头像的生成代码
2020/03/07 Javascript
vue 需求 data中的数据之间的调用操作
2020/08/05 Javascript
解决vant-UI库修改样式无效的问题
2020/11/03 Javascript
解决iView Table组件宽度只变大不变小的问题
2020/11/13 Javascript
Vite和Vue CLI的优劣
2021/01/30 Vue.js
python实现查询苹果手机维修进度
2015/03/16 Python
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
在pandas多重索引multiIndex中选定指定索引的行方法
2018/11/16 Python
对python多线程SSH登录并发脚本详解
2019/02/14 Python
python使用tkinter库实现五子棋游戏
2019/06/18 Python
python按比例随机切分数据的实现
2019/07/11 Python
Python实现Mysql数据统计及numpy统计函数
2019/07/15 Python
使用python+whoosh实现全文检索
2019/12/09 Python
浅谈python之自动化运维(Paramiko)
2020/01/31 Python
python时间日期操作方法实例小结
2020/02/06 Python
浅谈Python中的生成器和迭代器
2020/06/19 Python
Python 实现微信自动回复的方法
2020/09/11 Python
python中slice参数过长的处理方法及实例
2020/12/15 Python
Python使用pyenv实现多环境管理
2021/02/05 Python
Superdry瑞典官网:英国日本街头风品牌
2017/05/17 全球购物
安全生产检查通报
2014/01/29 职场文书
家长通知书教师评语
2014/04/17 职场文书
学校食堂食品安全责任书
2014/07/28 职场文书
学校后勤工作总结2015
2015/05/15 职场文书