Clipboard(剪贴板)
Clipboard 是 Windows、Linux、Mac 剪贴板的抽象模块。
示例
// 获取系统剪贴板
var clipboard = nw.Clipboard.get();
// 从剪贴板中读取数据
var text = clipboard.get('text');
console.log(text);
// 向剪贴板写入数据
clipboard.set('I love NW.js :)', 'text');
// 清空剪贴板
clipboard.clear();
Clipboard.get()
- 返回
{Clipboard},剪贴板对象
注意
不支持 X11 中的选择剪贴板。
clip.set(data, [type, [raw]])
data{String}要写入剪贴板的数据type{String}可选 数据类型。支持text、png、jpeg、html和rtf。默认为text。raw{Boolean}可选 需要原始图片数据。该参数只在数据类型为png和jpeg时有效。默认值为false。
将 type 类型的 data 写入剪贴板.
该方法将清空剪贴板并替换为传入的 data,每次调用都会覆盖掉原来的数据,如果想要同时写入多种类型的数据,需要使用 clip.set(clipboardDataList)。
图片格式
剪贴板支持读写 JPEG 或 PNG 类型的图片数据。如果不传入 raw 或传入 false,data 为有效的 Base64 编码的 data URI。如果 raw 传入 true,则 data 为 Base64 编码的图片数据(不包含 data:<mime-type>;base64, 部分)。
clip.set(clipboardData)
clipboardData{Object}JSON 对象,包含要写入剪贴板的data、type和raw信息。参考 clip.set(data, [type, [raw]]) 的参数说明。
clip.set(clipboardDataList)
clipboardDataList{Array}要写入剪贴板的clipboardData数组。参考 clip.set(clipboardData) 和 clip.set(data, [type, [raw]]) 的参数说明。
该方法可同时将多种类型的数据写入剪贴板。
例如,将一张图片和一个指向该图片的 <img> 节点写入剪贴板:
var fs = require('fs');
var path = require('path');
// 使用绝对路径以便于其他应用使用
var pngPath = path.resolve('nw.png');
// 读取图片文件并通过 base64 进行编码
var data = fs.readFileSync(pngPath).toString('base64');
// 转换文件路径为 URL
var html = '<img src="file:///' + encodeURI(data.replace(/^\//, '')) + '">';
var clip = nw.Clipboard.get();
// 将 PNG 和 HTML 写入剪贴板
clip.set([
{type: 'png', data: data, raw: true},
{type: 'html', data: html}
]);
clip.get([type, [raw]])
type{String}可选 数据类型。支持text、png、jpeg、html和rtf。默认为text。raw{Boolean}可选 需要原始图片数据。该参数只在数据类型为png和jpeg时有效。- 返回
{String}从剪贴板中获取到的数据
从剪贴板中获取 type 类型的数据。
clip.get(clipboardData)
clipboardData{Object}JSON 对象,包含要从剪贴板中读取的type和raw信息。参考 clip.get([type, [raw]]) 的参数说明。- 返回
{String}从剪贴板中获取到的数据
clip.get(clipboardDataList)
clipboardDataList{Array}要从剪贴板中读取的clipboardData数组。该方法支持从剪贴板中读取多种类型的数据。参考 clip.get(clipboardData) 和 clip.get([type, [raw]]) 的参数说明。- 返回
{Array}从剪贴板中获取到的数据列表。clipboardData数组,每个元素都包含type、data和raw信息。
clip.readAvailableTypes()
- 返回
{Array}当前剪贴板中有效的数据类型列表。可能的数据类型有:text:无格式文本,可通过clip.get('text')读取。html:HTML 文本,可通过clip.get('html')读取。rtf:富文本,可通过clip.get('rtf')读取。png:PNG 图片,可通过clip.get('png')读取。jpeg:JPEG 图片,可通过clip.get('jpeg')读取。
可以参考返回的类型列表,从剪贴板中获取相应类型的数据。
clip.clear()
清空剪贴板。