您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
Ready 发布于2014年09月17日 15:20

原创 ZeroClipboard 2.x API 实例对象的属性和方法

2229 次浏览 读完需要≈ 12 分钟

内容目录

以下是 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 事件及其属性细节

  • CodePlayer技术交流群1
  • CodePlayer技术交流群2

0 条评论

撰写评论

打开导航菜单