剪貼簿


剪貼簿是 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()

  • 傳回 {剪貼簿} 剪貼簿物件

注意

X11 中不支援選擇剪貼簿。

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

  • data {字串} 要寫入剪貼簿的資料
  • type {字串} 選用 資料的類型。支援 textpngjpeghtmlrtf。預設情況下,type 設為 "text"
  • raw {布林} 選用 需要原始影像資料。此選項僅在類型為 pngjpeg 時才有效。預設情況下,raw 設為 false

typedata 寫入剪貼簿。此方法會清除剪貼簿並以提供的 data 取代。因此,再次呼叫此方法會以新的資料覆寫。若要同時將多種類型的資料寫入剪貼簿,您需要使用以下 clip.set(clipboardDataList)

影像格式

從剪貼簿讀取或寫入的影像可以是 JPEG 或 PNG。當 raw 未設定或設為 false 時,預期資料為使用 Base64 編碼的有效 資料 URI。當 raw 設為 true 時,資料僅為 Base64 編碼的影像資料,不包含 data:<mime-type>;base64, 部分。

clip.set(clipboardData)

  • clipboardData {物件} JSON 物件,包含要寫入剪貼簿的 datatyperaw。請參閱 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 {字串} 選用 資料的類型。支援 textpngjpeghtmlrtf。預設情況下,type 設為 "text"
  • raw {Boolean} 選用 需要原始影像資料。此選項僅在類型為 pngjpeg 時才有效。
  • 傳回 {String} 從剪貼簿擷取的資料

從剪貼簿取得 type 的資料。

clip.get(clipboardData)

  • clipboardData {Object} JSON 物件,包含用於從剪貼簿讀取資料的 typeraw 參數。有關詳細參數規格,請參閱 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 (Rich Text Format)。可以使用 clip.get('rtf') 讀取。
    • png:PNG 影像。可以使用 clip.get('png') 讀取。
    • jpeg:JPEG 影像。可以使用 clip.get('jpeg') 讀取。

您可以使用傳回的清單作為建議,從剪貼簿取得正確的資料。

clip.clear()

清除剪貼簿。