剪贴板
Clipboard
是 Windows、Linux 和 Mac 剪贴板的抽象。
概述
// get the system clipboard var clipboard = nw.Clipboard.get(); // Read from clipboard var text = clipboard.get('text'); console.log(text); // Or write something clipboard.set('I love NW.js :)', 'text'); // And clear it! clipboard.clear();
Clipboard.get()
- 返回
{Clipboard}
剪贴板对象
注意
不支持 X11 中的选择剪贴板。
clip.set(data, [type, [raw]])
data
{String}
要写入剪贴板的数据type
{String}
可选 数据类型。支持text
、png
、jpeg
、html
和rtf
。默认情况下,type
设置为"text"
。raw
{Boolean}
可选 要求原始图像数据。此选项仅在类型为png
或jpeg
时有效。默认情况下,raw
设置为false
。
将 type
的 data
写入剪贴板。此方法将清除剪贴板并替换为给定的 data
。因此,对该方法的另一次调用将用新的数据覆盖。要将多种类型的数据同时写入剪贴板,您需要使用下面的 clip.set(clipboardDataList)。
图像格式
从剪贴板读取或写入的图像可以是 JPEG 或 PNG。当 raw
未设置或设置为 false
时,数据应为使用 Base64 编码的有效 data URI。当 raw
设置为 true
时,数据仅为 Base64 编码的图像数据,不包括 data:<mime-type>;base64,
部分。
clip.set(clipboardData)
clipboardData
{Object}
包含data
、type
和raw
的 JSON 对象,用于写入剪贴板。有关详细的参数规范,请参阅 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'); // resolve path as absolute path in order to be used by other applications var pngPath = path.resolve('nw.png'); // read the image from file system as base64 encoded string var data = fs.readFileSync(pngPath).toString('base64'); // transform file path to URL var html = '<img src="file:///' + encodeURI(data.replace(/^\//, '')) + '">'; var clip = nw.Clipboard.get(); // write both PNG and HTML to clipboard clip.set([ {type: 'png', data: data, raw: true}, {type: 'html', data: html} ]);
clip.get([type, [raw]])
type
{String}
可选 数据类型。支持text
、png
、jpeg
、html
和rtf
。默认情况下,type
设置为"text"
。raw
{Boolean}
可选,需要原始图像数据。此选项仅在类型为png
或jpeg
时有效。- 返回
{String}
从剪贴板检索到的数据
获取剪贴板中 type
的数据。
clip.get(clipboardData)
clipboardData
{Object}
包含type
和raw
参数的 JSON 对象,用于从剪贴板读取数据。有关详细的参数规范,请参阅 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
:RTF(富文本格式)。可以通过clip.get('rtf')
读取。png
:PNG 图像。可以通过clip.get('png')
读取。jpeg
:JPEG 图像。可以通过clip.get('jpeg')
读取。
您可以使用返回的列表作为建议,从剪贴板获取正确的数据。
clip.clear()
清除剪贴板。