ZeroClipboard 复制到剪贴板
使用 ZeroClipboard 可以简单的将内容复制到剪贴板,通过 Adobe Flash 和 JavaScript 来实现。“Zero” 意义为这个类库没有界面,界面需要由你来建立。
- 版本:
ZeroClipboard v2.1.6
在线实例
实例预览 ZeroClipboard 复制到剪贴板 简单示例
使用方法
载入 JavaScript 文件
- <script src="ZeroClipboard.js"></script>
如果 ZeroClipboard.swf 与页面不在同一个目录下,可以设置路径
// 全局设置ZeroClipboard.setDefaults({moviePath: '/path/ZeroClipboard.swf'});// 参数中设置var clip=new ZeroClipboard(document.getElementById("copy-button"), {moviePath: '/path/ZeroClipboard.swf'});
调用
可以传递一个元素或者一个元素数组。(这里使用 jQuery 获取元素的方式)
// 直接调用var clip=new ZeroClipboard($('#my-button'));
AMD
如果你使用 RequireJS, curl.js, seajs 等 AMD 规范的模块加载器,那么需要设置模块的 ID 或者路径的值到 amdModuleId,才能正常使用 ZeroClipboard。例:
define(['path/to/zero-clipboard'], function(ZeroClipboard){ZeroClipboard.setDefaults({amdModuleId: 'path/to/zero-clipboard'});});
或者设置路径,RequireJS 的例子:
requirejs.config({paths:{"ZeroClipboard":"path/to/zero-clipboard"}});define(["ZeroClipboard"],function(ZeroClipboard) {ZeroClipboard.setDefaults({amdModuleId: 'ZeroClipboard'});});
参数说明
- new ZeroClipboard(elements [, options])
options 参数说明
| 名称 | 默认值 | 说明 |
|---|---|---|
| swfPath | "ZeroClipboard.swf" | Flash 文件路径,默认的 swf 文件路径与 ZeroClipboard.js 相同 |
| trustedDomains | window.location.host ? [window.location.host] : [] | 可信任的域(字符串或者字符串的数组) |
| cacheBust | true | |
| forceEnhancedClipboard | false | |
| flashLoadTimeout | 30000 | 加载 Flash 的超时时间,如果不需要,可以设置为 0。单位(ms) |
| autoActivate | true | |
| bubbleEvents | true | |
| containerId | "global-zeroclipboard-html-bridge" | |
| containerClass | "global-zeroclipboard-container" | |
| swfObjectId | "global-zeroclipboard-flash-bridge" | |
| hoverClass | "zeroclipboard-is-hover" | 鼠标移上时给元素增加的 Class |
| activeClass | "zeroclipboard-is-active" | 选定是给元素增加的 Class |
| forceHandCursor | false | |
| title | null | |
| zIndex | 999999999 |
参数 allowScriptAccess 选项的注意事项
1.1.7 及以下的版本,allowScriptAccess 的默认值为 always。意味着允许 "ZeroClipboard.swf" 文件托管的其他的域。为了提高安全性,1.1.7 之后的版本,allowScriptAccess 的默认值为 sameDomain,只允许 "ZeroClipboard.swf" 在相同域之下。
如果你是从 1.1.7 或更低的版本升级到 1.1.7 以上版本时,需要将 "ZeroClipboard.swf" 保存一份到相同域之下,或者设置 allowScriptAccess 的值为 always。
关于 allowScriptAccess 的更多信息,可以参考官方文档。
Data 属性
| 名称 | 说明 |
|---|---|
| data-clipboard-target | 元素ID。查找该元素后,尝试复制元素的 .value 或 .textContent 或 .innerText 的值 |
| data-clipboard-text | 默认复制的内容。 |
同时设置 data-clipboard-target 和 data-clipboard-text 两个属性时,只有在找不到 clipboard-target 的值时才会选用 clipboard-text
即使获取到 clipboard-target 的值为空,也不会选用 clipboard-text
API 方法
| 名称 | 说明 |
|---|---|
| glue(dom) | 绑定到元素 |
| reposition() | 调整位置 |
| on("Event",my_load_handler) | 绑定事件 |
| off("Event",my_load_handler) | 取消已绑定的事件 |
事件
通过 API 的方法 on() 来绑定
| 名称 | 示例 | 说明 |
|---|---|---|
| load | clip.on("load",function(client,args){...}); | Flash 加载完成时的事件。args 参数包含以下属性:
flashVersion:当前 Flash 的版本号 |
| mouseover | clip.on("mouseover",function(client,args){...}); | 鼠标移入时的事件。args 参数包含以下属性:
flashVersion:当前 Flash 的版本号 altKey:是否按住 Alt 键 ctrlKey:是否按住 Ctrl 键 shiftKey:是否按住 Shift 键 |
| mouseout | clip.on("mouseout",function(client,args){...}); | 鼠标移出时的事件。args 参数包含以下属性:
flashVersion:当前 Flash 的版本号 altKey:是否按住 Alt 键 ctrlKey:是否按住 Ctrl 键 shiftKey:是否按住 Shift 键 |
| mousedown | clip.on("mousedown",function(client,args){...}); | 鼠标按下时的事件。args 参数包含以下属性:
flashVersion:当前 Flash 的版本号 altKey:是否按住 Alt 键 ctrlKey:是否按住 Ctrl 键 shiftKey:是否按住 Shift 键 |
| mouseup | clip.on("mouseup",function(client,args){...}); | 鼠标弹起时的事件。args 参数包含以下属性:
flashVersion:当前 Flash 的版本号 altKey:是否按住 Alt 键 ctrlKey:是否按住 Ctrl 键 shiftKey:是否按住 Shift 键 |
| complete | clip.on("complete",function(client,args){...}); | 成功复制内容时的事件。args 参数包含以下属性:
flashVersion:当前 Flash 的版本号 altKey:是否按住 Alt 键 ctrlKey:是否按住 Ctrl 键 shiftKey:是否按住 Shift 键 text:复制的内容 |
| noflash | clip.on("noflash",function(client,args){...}); | 没有检测到 Flash 时的事件。 |
| wrongflash | clip.on("wrongflash",function(client,args){...}); | Flash 版本低于要求版本时的事件。ZeroClipboard 要求 Flash 10.0.0 以上的版本。 |
| dataRequested | clip.on("dataRequested",function(client,args){...}); | 复制开始时的事件 |
ZeroClipboard 复制到剪贴板的更多相关文章
- 使用ZeroClipboard解决跨浏览器复制到剪贴板的问题
Zero Clipboard的实现原理Zero Clipboard 利用透明的Flash让其漂浮在复制按钮之上,这样其实点击的不是按钮而是 Flash ,这样将需要的内容传入Flash,再通过Flas ...
- ZeroClipboard 插件实现文本复制到剪贴板
ZeroClipboard 的官网 点这里,github地址 点这里. 事例如下: 在引入 ZeroClipboard.js 之后, <button id="clip_button&q ...
- 复制到剪贴板的JS实现--ZeroClipboard (兼解决IE下兼容问题)
复制到剪贴板的JS实现--ZeroClipboard (兼解决IE下兼容问题) 相信绝大多数人都遇到过这样的功能实现,“复制”或者“复制到剪贴板”这样的功能.但是由于各大浏览器的实现方案不一样,导致几 ...
- 【转】js实现复制到剪贴板功能,兼容所有浏览器
两天前听了一个H5的分享,会议上有一句话,非常有感触:不是你不能,而是你对自己的要求太低.很简单的一句话,相信很多事情不是大家做不到,真的是对自己的要求太低,如果对自己要求多一点,那么你取得的进步可能 ...
- js实现复制到剪贴板功能,兼容所有浏览器
http://www.cnblogs.com/PeunZhang/p/3324727.html https://github.com/zeroclipboard/ZeroClipboard 复制链接到 ...
- 【转】js插件zClip实现复制到剪贴板功能
相信这个功能大家平时上网经常能碰到,以前也没怎么留意怎么实现的,直到项目中需要. 网上一搜一大堆,单纯使用js方法也不是没有,但是由于各浏览器的安全机制不同,不是跨浏览器的.去看了几个常用的网站,都是 ...
- 【原】js实现复制到剪贴板功能,兼容所有浏览器
两天前听了一个H5的分享,会议上有一句话,非常有感触:不是你不能,而是你对自己的要求太低.很简单的一句话,相信很多事情不是大家做不到,真的是对自己的要求太低,如果对自己要求多一点,那么你取得的进步可能 ...
- ZeroclipboardJS+flash实现将内容复制到剪贴板实例
Zeroclipboard 的实现原理 Zeroclipboard 利用 Flash 进行复制,之前有 Clipboard Copy 解决方案,其利用的是一个隐藏的 Flash.但最新的 Flash ...
- 黄聪:JS实现复制到剪贴板功能,兼容所有浏览器(转)
两天前听了一个H5的分享,会议上有一句话,非常有感触:不是你不能,而是你对自己的要求太低.很简单的一句话,相信很多事情不是大家做不到,真的是对自己的要求太低,如果对自己要求多一点,那么你取得的进步可能 ...
随机推荐
- Design1:数据层次结构建模之一
1,在现实世界中,有很多现象存在层次结构,公司的人事职称是典型的层次结果,如下图 Sql Server是关系型DB,适合存储二维关系的数据,如何存储具有层次结构的数据了?需要使用一个字段ParentI ...
- Android入门(十六)调用摄像头相册
原文链接:http://www.orlion.ga/665/ 一.调用摄像头 创建一个项目ChoosePicDemo,修改activity_main.xml: <LinearLayout xml ...
- Android引导页设计
大家在安装好一个应用后,第一次打开时往往会出现一个使用引导页,形式一般为三.四张图片,随着我们的滑动进行切换,在最后一页会有一个进入应用的按钮,我们通过点击这个按钮可以进入应用,其实这其中没有太多的复 ...
- poj1949Chores(建图或者dp)
/* 题意:n个任务,有某些任务要在一些任务之前完成才能开始做! 第k个任务的约束只能是1...k-1个任务!问最终需要最少的时间完成全部的 任务! 思路:第i个任务要在第j个任务之前做,就在i,j之 ...
- 【Android】Android Camera原始帧格式转换 —— 获取Camera图像(一)
概述: 做过Android Camera图像采集和处理的朋友们应该都知道,Android手机相机采集的原始帧(RawFrame)默认是横屏格式的,而官方API有没有提供一个设置Camera采集图像的 ...
- Android中BroadcastReceiver广播
BroadCastReceiver 简介 广播接收者( BroadcastReceiver )用于接收广播 Intent ,广播 Intent 的发送是通过调用 Context.sendBroadca ...
- LocationManager使用细节
在使用系统的LocationManager请求地理位置的时候,请特别注意一个很小的细节,调用 requestLocationUpdates 以后,请记得[自己]设置一个timeout值,否则在某些情况 ...
- java设计模式学习(-)
在我目前看来博客的作用就是笔记了,所谓的原创也仅仅是复制了别人的东西实践了一下,但为了学习记忆确实要记录下来.在这里感谢网络各处的资源,原谅我对资源的索取. 接下来每天开始学以则设计模式或者几天学一则 ...
- app令牌的一个token实现
app登陆验证不能使用session来判断了.然后查资料都说用令牌,没找到合适的方法,我的眼界太小.另外,越来越感觉基础的重要,比如,session是什么,我竟无言以对.不知道session是什么,怎 ...
- Clipboard.js实现复制内容到剪切板
<script type="text/javascript"> var clipboard1 = new Clipboard('.bt01'); clipboard1. ...