内容目录
以下是 ZeroClipboard 2.x 的API文档中关于ZeroClipboard
对象实例的属性和方法,实例对象一般通过new ZeroClipboard()
来创建。
ZeroClipboard 对象实例的属性和方法
id
String类型返回表示当前实例对象的唯一字符串标识(一般是字符串形式的数字,例如 "0"、"1")。
destroy()
删除所有事件处理器,并移除所有复制载体元素上透明的Flash影片,取消复制功能。
setText(...)
ZeroClipboard类型设置用于复制的"text/plain"类型的文本数据,并返回当前对象。
clipObj.setText("CodePlayer");
setHtml(...)
ZeroClipboard类型设置用于复制的"text/html"类型的文本数据,并返回当前对象。
clipObj.setHtml("<strong>CodePlayer</strong>");
setRichText(...)
ZeroClipboard类型设置用于复制的"application/rtf"类型的文本数据,并返回当前对象。
clipObj.setRichText("{\\rtf1\\ansi\n{\\b CodePlayer}}");
setData(...)
ZeroClipboard类型设置用于复制的任意类型的文本数据,并返回当前对象。
// 分别设置指定类型的文本数据
clipObj.setData("text/plain", "CodePlayer");
clipObj.setData("text/html", "<strong>CodePlayer</strong>");
// 一次设置多种类型的文本数据
clipObj.setData({
"text/plain": "CodePlayer",
"text/html": "<strong>CodePlayer</strong>"
});
clearData(...)
ZeroClipboard类型清空用于复制的文本数据,并返回当前对象。
// 清空用于复制的"text/plain"类型的文本数据
clipObj.clearData("text/plain");
// 清空用于复制的所有类型的文本数据
clipObj.clearData();
getData(...)
String/Object类型获取用于复制的数据。
// 用法一
var text = clipObj.getData("text/html"); //获取用于复制的"text/html"类型的数据
// 用法二
var dataObj = clipObj.getData(); //获取用于复制的所有类型的数据,并以对象形式返回(副本)
clip(...)
ZeroClipboard类型将当前剪贴板动作注册到新的元素上,以便于在新的元素上进行复制操作,之前的载体元素依然有效。
// 以下三种方式均可,你也可以以数组形式传入多个元素
clipObj.clip( document.getElementById("d_clip_button") )
clipObj.clip( document.querySelectorAll(".clip_button") );
// 这里传入的是jQuery对象(ZeroClipboard不依赖jQuery,但可以使用这种方式,因此jQuery对象支持类似数组的操作)
clipObj.clip( $(".clip_button") );
unclip(...)
ZeroClipboard类型取消元素上注册的剪贴板动作,该元素将不再具有复制功能。
clipObj.unclip(document.getElementById("d_clip_button"))
clipObj.unclip(document.querySelectorAll(".clip_button"));
clipObj.unclip(jQuery(".clip_button"));
// 不指定任何参数则取消之前注册在所有元素上的剪贴板动作
clipObj.unclip();
elements()
Array类型返回当前实例注册了剪贴板动作的所有元素的数组。
on(...)
ZeroClipboard类型为当前ZeroClipboard对象的指定事件绑定处理函数。支持的事件有"ready"、 "beforecopy"、 "copy"、 "aftercopy"、 "destroy"、 "error"。详情请点击参见。
var listenerFn = function(e) { var clipObj = this; /* ... */ };
// 为ready事件绑定处理函数,函数内部的this指向当前ZeroClipboard对象
clipObj.on("ready", listenerFn);
var listenerObj = {
handleEvent: function(e) { var listenerObj = this; /* ... */ }
};
// 为error事件绑定包含处理函数在内的对象,对象属性名称必须是handleEvent,否则不会生效。
// 处理函数内部的this指向该函数所在对象
clipObj.on("error", listenerObj);
// 同时为多个事件绑定相同的处理函数
clipObj.on("ready error", function(e) { /* ... */ });
// 以对象形式同时为多个事件绑定不同的处理函数
clipObj.on({
"ready": function(e) { /* ... */ },
"error": function(e) { /* ... */ }
});
// 同一个事件都可以多次调用,从而绑定多个处理函数
off(...)
ZeroClipboard类型解除之前为当前ZeroClipboard对象绑定的事件处理函数。
// 解除ready事件上绑定的listenerFn函数
clipObj.off("ready", listenerFn);
// 解除ready事件上绑定的listenerObj对象
clipObj.off("error", listenerObj);
// 解除多个事件上绑定的同一listenerFn函数
clipObj.off("ready error", listenerFn);
// 同时解除多个事件上绑定的不同函数
clipObj.off({
"ready": readyListenerFn,
"error": errorListenerFn
});
// 解除ready事件上绑定的所有事件处理函数或对象
clipObj.off("ready");
// 解除所有事件的所有绑定
clipObj.off();
emit()
手动触发当前ZeroClipboard对象的指定事件,会触发该事件上注册的所有事件处理函数。
// 触发ready事件
clipObj.emit("ready");
// 触发error事件
// 这里的name属性是 ZeroClipboard 内部定义的错误类型名称,表示Flash被禁用或未安装。此外还有flash-outdated(版本过低)、 flash-unavailable(无法与JS交互)、 flash-deactivated(未激活)、 flash-overdue(加载Flash SWF超时)。
clipObj.emit({
type: "error",
name: "flash-disabled"
});
// 由于Flash 10+的安全限制因素,使用代码触发copy事件不会进行复制
// clipObj.emit("copy");
handlers(...)
Array/Object类型返回当前ZeroClipboard对象中指定事件绑定的事件处理函数或对象的副本。
// 以数组形式返回ready事件的所有事件处理函数或对象
var listeners = clipObj.handlers("ready");
// 以对象形式返回所有事件的所有事件处理函数或对象
var listenersObj = clipObj.handlers();
ZeroClipboard 对象实例的事件处理和全局 ZeroClipboard 对象的事件处理相同。只不过,前者只作用于当前对象,后者作用于所有的 ZeroClipboard 对象实例。请直接参考 ZeroClipboard 事件及其属性细节。
0 条评论
撰写评论