剪贴板

Clipboard是Windows, Linux 和 Mac系统中的常用操作.

示例

//获取系统剪贴板
var clipboard = nw.Clipboard.get();
//从剪贴板中读取
var text = clipboard.get('text');
console.log(text);
//或写点东西到剪贴板
clipboard.set('我在使用NW.js :)', 'text');
// 或者清空剪贴板
clipboard.clear();

Clipboard.get()

用途:获取剪贴板对象 Clipboard

请注意,X11不支持选择剪贴板 .

clip.set(data, [type, [raw]])

用途:将对应类型的数据 data写入剪贴板

该方法将清空剪贴板内容以及将 data内容写入剪贴板 . 再次调用该方法会将新 data内容替换到现 有data内容中 .

如需同时写入多种类型的数据到剪贴板,请使用clip.set(clipboardDataList).

请注意,读取或写入的图像仅为 JPEGPNG.

当未设置 raw或设为 false时, data参数为有效的Base64编译的URI.

当设置 raw设为 true时,data参数为Base64编译的图片数并且不含 data:<mime-type> ;base64,部分 .

clip.set(clipboardData)

用途:将剪贴板数据的JSON对象 clipboardData写入剪贴板

clip.set(clipboardDataList)

用途:批量将剪贴板数据的JSON对象组成的数组 clipboardData写入剪贴板

可以使用此方法同时将多种类型的数据写入剪贴板. 例如: 将图像和指向图像的 <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)

clip.get(clipboardData)

用途:从剪贴板获取内含 data, typeraw的JSON对象的数据( clipboardData)

clip.get(clipboardDataList)

用途:从剪贴板获取多个内含 data, typeraw的JSON对象组成的数组数据( Array)

可以使用此方法同时从剪贴板读取多种类型的数据.

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()

用途:清空剪贴板