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修改input的type属性及浏览器兼容问题探讨与解决
Jan 23 Javascript
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
Jun 26 Javascript
jquery实现盒子下拉效果示例代码
Sep 12 Javascript
IE8中使用javascript动态加载CSS的解决方法
Jun 17 Javascript
基于jquery实现鼠标滚轮驱动的图片切换效果
Oct 26 Javascript
javascript数据结构之二叉搜索树实现方法
Nov 25 Javascript
js中利用tagname和id获取元素的方法
Jan 03 Javascript
浅析jQuery Ajax通用js封装
Jun 22 Javascript
JS脚本加载后执行相应回调函数的操作方法
Feb 28 Javascript
深入浅析Vue中的slots/scoped slots
Apr 03 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
Jun 13 Javascript
详解Vue中的watch和computed
Nov 09 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中常见的mongodb查询操作
2013/06/20 PHP
给WordPress中的留言加上楼层号的PHP代码实例
2015/12/14 PHP
PHP文件上传操作实例详解
2016/09/27 PHP
xml分页+ajax请求数据源+dom取结果实例代码
2008/10/31 Javascript
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
2013/01/27 Javascript
fckeditor粘贴Word时弹出窗口取消的方法
2014/10/30 Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
2015/01/28 Javascript
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
2016/03/02 Javascript
JS基于递归实现倒计时效果的方法
2016/11/26 Javascript
jQuery通过改变input的type属性实现密码显示隐藏切换功能
2017/02/08 Javascript
vue指令以及dom操作详解
2017/03/04 Javascript
js利用for in循环获取 一个对象的所有属性以及值的实例
2017/03/30 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
vue-cli3脚手架的配置及使用教程
2018/08/28 Javascript
JavaScript对JSON数组简单排序操作示例
2019/01/31 Javascript
Vue项目服务器部署之子目录部署方法
2019/05/12 Javascript
原生js实现随机点名
2020/07/05 Javascript
JavaScript 实现下雪特效的示例代码
2020/09/09 Javascript
python检查序列seq是否含有aset中项的方法
2015/06/30 Python
浅谈python数据类型及类型转换
2017/12/18 Python
Python参数解析模块sys、getopt、argparse使用与对比分析
2019/04/02 Python
Python Selenium安装及环境配置的实现
2020/03/17 Python
Python2及Python3如何实现兼容切换
2020/09/01 Python
python性能测试工具locust的使用
2020/12/28 Python
意大利消费电子产品购物网站:SLG Store
2019/12/26 全球购物
adidas泰国官网:adidas TH
2020/07/11 全球购物
师范毕业生求职自荐信
2013/09/25 职场文书
五一家具促销方案
2014/01/10 职场文书
上党课的心得体会
2014/09/02 职场文书
个人四风问题对照检查材料思想汇报
2014/10/06 职场文书
2014年小学英语教师工作总
2014/12/03 职场文书
生产车间管理制度
2015/08/04 职场文书
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python
OpenCV-Python实现轮廓拟合
2021/06/08 Python
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers