剪贴板


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} 可选 数据类型。支持 textpngjpeghtmlrtf。默认情况下,type 设置为 "text"
  • raw {Boolean} 可选 要求原始图像数据。此选项仅在类型为 pngjpeg 时有效。默认情况下,raw 设置为 false

typedata 写入剪贴板。此方法将清除剪贴板并替换为给定的 data。因此,对该方法的另一次调用将用新的数据覆盖。要将多种类型的数据同时写入剪贴板,您需要使用下面的 clip.set(clipboardDataList)

图像格式

从剪贴板读取或写入的图像可以是 JPEG 或 PNG。当 raw 未设置或设置为 false 时,数据应为使用 Base64 编码的有效 data URI。当 raw 设置为 true 时,数据仅为 Base64 编码的图像数据,不包括 data:<mime-type>;base64, 部分。

clip.set(clipboardData)

  • clipboardData {Object} 包含 datatyperaw 的 JSON 对象,用于写入剪贴板。有关详细的参数规范,请参阅 clip.set(data, [type, [raw]])

clip.set(clipboardDataList)

可以使用此方法将多种类型的数据同时写入剪贴板。

示例:将图像和指向该图像的 <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} 可选 数据类型。支持 textpngjpeghtmlrtf。默认情况下,type 设置为 "text"
  • raw {Boolean} 可选,需要原始图像数据。此选项仅在类型为 pngjpeg 时有效。
  • 返回 {String} 从剪贴板检索到的数据

获取剪贴板中 type 的数据。

clip.get(clipboardData)

  • clipboardData {Object} 包含 typeraw 参数的 JSON 对象,用于从剪贴板读取数据。有关详细的参数规范,请参阅 clip.get([type, [raw]])
  • 返回 {String} 从剪贴板检索到的数据

clip.get(clipboardDataList)

  • clipboardDataList {Array} 用于从剪贴板读取数据的 clipboardData 数组。可以使用此方法从剪贴板同时读取多种类型的数据。有关详细的参数规范,请参阅 clip.get(clipboardData)clip.get([type, [raw]])
  • 返回 {Array} 从剪贴板检索到的 clipboardData 数组。每个项目包含 typedataraw(可选)属性。

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

清除剪贴板。