Skip to main content

clipboard

在系统剪贴板上执行复制和粘贴操作。

¥Perform copy and paste operations on the system clipboard.

进程:主进程渲染器(仅限非沙盒)

¥Process: Main, Renderer (non-sandboxed only)

在 Linux 上,还有一个 selection 剪贴板。要操作它,你需要将 selection 传递给每个方法:

¥On Linux, there is also a selection clipboard. To manipulate it you need to pass selection to each method:

const { clipboard } = require('electron')

clipboard.writeText('Example string', 'selection')
console.log(clipboard.readText('selection'))

方法

¥Methods

clipboard 模块有以下方法:

¥The clipboard module has the following methods:

注意:实验性 API 已被标记为此类,并且将来可能会被删除。

¥Note: Experimental APIs are marked as such and could be removed in future.

clipboard.readText([type])

  • type 字符串(可选) - 可以是 selectionclipboard;默认为 'clipboard'。selection 仅在 Linux 上可用。

    ¥type string (optional) - Can be selection or clipboard; default is 'clipboard'. selection is only available on Linux.

返回 string - 剪贴板中的内容为纯文本。

¥Returns string - The content in the clipboard as plain text.

const { clipboard } = require('electron')

clipboard.writeText('hello i am a bit of text!')

const text = clipboard.readText()
console.log(text)
// hello i am a bit of text!'

clipboard.writeText(text[, type])

  • text 字符串

    ¥text string

  • type 字符串(可选) - 可以是 selectionclipboard;默认为 'clipboard'。selection 仅在 Linux 上可用。

    ¥type string (optional) - Can be selection or clipboard; default is 'clipboard'. selection is only available on Linux.

text 作为纯文本写入剪贴板。

¥Writes the text into the clipboard as plain text.

const { clipboard } = require('electron')

const text = 'hello i am a bit of text!'
clipboard.writeText(text)

clipboard.readHTML([type])

  • type 字符串(可选) - 可以是 selectionclipboard;默认为 'clipboard'。selection 仅在 Linux 上可用。

    ¥type string (optional) - Can be selection or clipboard; default is 'clipboard'. selection is only available on Linux.

返回 string - 剪贴板中的内容作为标记。

¥Returns string - The content in the clipboard as markup.

const { clipboard } = require('electron')

clipboard.writeHTML('<b>Hi</b>')
const html = clipboard.readHTML()

console.log(html)
// <meta charset='utf-8'><b>Hi</b>

clipboard.writeHTML(markup[, type])

  • markup 字符串

    ¥markup string

  • type 字符串(可选) - 可以是 selectionclipboard;默认为 'clipboard'。selection 仅在 Linux 上可用。

    ¥type string (optional) - Can be selection or clipboard; default is 'clipboard'. selection is only available on Linux.

markup 写入剪贴板。

¥Writes markup to the clipboard.

const { clipboard } = require('electron')

clipboard.writeHTML('<b>Hi</b>')

clipboard.readImage([type])

  • type 字符串(可选) - 可以是 selectionclipboard;默认为 'clipboard'。selection 仅在 Linux 上可用。

    ¥type string (optional) - Can be selection or clipboard; default is 'clipboard'. selection is only available on Linux.

返回 NativeImage - 剪贴板中的图片内容。

¥Returns NativeImage - The image content in the clipboard.

clipboard.writeImage(image[, type])

  • image NativeImage

  • type 字符串(可选) - 可以是 selectionclipboard;默认为 'clipboard'。selection 仅在 Linux 上可用。

    ¥type string (optional) - Can be selection or clipboard; default is 'clipboard'. selection is only available on Linux.

image 写入剪贴板。

¥Writes image to the clipboard.

clipboard.readRTF([type])

  • type 字符串(可选) - 可以是 selectionclipboard;默认为 'clipboard'。selection 仅在 Linux 上可用。

    ¥type string (optional) - Can be selection or clipboard; default is 'clipboard'. selection is only available on Linux.

返回 string - 剪贴板中的内容为 RTF。

¥Returns string - The content in the clipboard as RTF.

const { clipboard } = require('electron')

clipboard.writeRTF('{\\rtf1\\ansi{\\fonttbl\\f0\\fswiss Helvetica;}\\f0\\pard\nThis is some {\\b bold} text.\\par\n}')

const rtf = clipboard.readRTF()
console.log(rtf)
// {\\rtf1\\ansi{\\fonttbl\\f0\\fswiss Helvetica;}\\f0\\pard\nThis is some {\\b bold} text.\\par\n}

clipboard.writeRTF(text[, type])

  • text 字符串

    ¥text string

  • type 字符串(可选) - 可以是 selectionclipboard;默认为 'clipboard'。selection 仅在 Linux 上可用。

    ¥type string (optional) - Can be selection or clipboard; default is 'clipboard'. selection is only available on Linux.

text 以 RTF 格式写入剪贴板。

¥Writes the text into the clipboard in RTF.

const { clipboard } = require('electron')

const rtf = '{\\rtf1\\ansi{\\fonttbl\\f0\\fswiss Helvetica;}\\f0\\pard\nThis is some {\\b bold} text.\\par\n}'
clipboard.writeRTF(rtf)

clipboard.readBookmark() macOS Windows

返回 Object

¥Returns Object:

  • title 字符串

    ¥title string

  • url 字符串

    ¥url string

返回一个包含代表剪贴板中书签的 titleurl 键的对象。当书签不可用时,titleurl 值将为空字符串。在 Windows 上,title 值始终为空。

¥Returns an Object containing title and url keys representing the bookmark in the clipboard. The title and url values will be empty strings when the bookmark is unavailable. The title value will always be empty on Windows.

clipboard.writeBookmark(title, url[, type]) macOS Windows

  • title 字符串 - Windows 上未使用

    ¥title string - Unused on Windows

  • url 字符串

    ¥url string

  • type 字符串(可选) - 可以是 selectionclipboard;默认为 'clipboard'。selection 仅在 Linux 上可用。

    ¥type string (optional) - Can be selection or clipboard; default is 'clipboard'. selection is only available on Linux.

title(仅限 macOS)和 url 作为书签写入剪贴板。

¥Writes the title (macOS only) and url into the clipboard as a bookmark.

注意:Windows 上的大多数应用不支持将书签粘贴到其中,因此你可以使用 clipboard.write 将书签和后备文本写入剪贴板。

¥Note: Most apps on Windows don't support pasting bookmarks into them so you can use clipboard.write to write both a bookmark and fallback text to the clipboard.

const { clipboard } = require('electron')

clipboard.writeBookmark('Electron Homepage', 'https://electron.nodejs.cn')

clipboard.readFindText() macOS

返回 string - 查找粘贴板上的文本,该粘贴板保存有关活动应用查找面板当前状态的信息。

¥Returns string - The text on the find pasteboard, which is the pasteboard that holds information about the current state of the active application’s find panel.

当从渲染器进程调用时,此方法使用同步 IPC。每当激活应用时,都会从查找粘贴板中重新读取缓存的值。

¥This method uses synchronous IPC when called from the renderer process. The cached value is reread from the find pasteboard whenever the application is activated.

clipboard.writeFindText(text) macOS

  • text 字符串

    ¥text string

text 以纯文本形式写入查找粘贴板(保存有关活动应用查找面板当前状态信息的粘贴板)。当从渲染器进程调用时,此方法使用同步 IPC。

¥Writes the text into the find pasteboard (the pasteboard that holds information about the current state of the active application’s find panel) as plain text. This method uses synchronous IPC when called from the renderer process.

clipboard.clear([type])

  • type 字符串(可选) - 可以是 selectionclipboard;默认为 'clipboard'。selection 仅在 Linux 上可用。

    ¥type string (optional) - Can be selection or clipboard; default is 'clipboard'. selection is only available on Linux.

清除剪贴板内容。

¥Clears the clipboard content.

clipboard.availableFormats([type])

  • type 字符串(可选) - 可以是 selectionclipboard;默认为 'clipboard'。selection 仅在 Linux 上可用。

    ¥type string (optional) - Can be selection or clipboard; default is 'clipboard'. selection is only available on Linux.

返回 string[] - 剪贴板 type 支持的一系列格式。

¥Returns string[] - An array of supported formats for the clipboard type.

const { clipboard } = require('electron')

const formats = clipboard.availableFormats()
console.log(formats)
// [ 'text/plain', 'text/html' ]

clipboard.has(format[, type]) 实验性的

¥clipboard.has(format[, type]) Experimental

  • format 字符串

    ¥format string

  • type 字符串(可选) - 可以是 selectionclipboard;默认为 'clipboard'。selection 仅在 Linux 上可用。

    ¥type string (optional) - Can be selection or clipboard; default is 'clipboard'. selection is only available on Linux.

返回 boolean - 剪贴板是否支持指定的 format

¥Returns boolean - Whether the clipboard supports the specified format.

const { clipboard } = require('electron')

const hasFormat = clipboard.has('public/utf8-plain-text')
console.log(hasFormat)
// 'true' or 'false'

clipboard.read(format) 实验性的

¥clipboard.read(format) Experimental

  • format 字符串

    ¥format string

返回 string - 从剪贴板读取 format 类型。

¥Returns string - Reads format type from the clipboard.

format 应包含有效的 ASCII 字符并具有 / 分隔符。a/ca/bc 是有效格式,而 /abcabc/a//aa 无效。

¥format should contain valid ASCII characters and have / separator. a/c, a/bc are valid formats while /abc, abc/, a/, /a, a are not valid.

clipboard.readBuffer(format) 实验性的

¥clipboard.readBuffer(format) Experimental

  • format 字符串

    ¥format string

返回 Buffer - 从剪贴板读取 format 类型。

¥Returns Buffer - Reads format type from the clipboard.

const { clipboard } = require('electron')

const buffer = Buffer.from('this is binary', 'utf8')
clipboard.writeBuffer('public/utf8-plain-text', buffer)

const ret = clipboard.readBuffer('public/utf8-plain-text')

console.log(buffer.equals(ret))
// true

clipboard.writeBuffer(format, buffer[, type]) 实验性的

¥clipboard.writeBuffer(format, buffer[, type]) Experimental

  • format 字符串

    ¥format string

  • buffer 缓冲

    ¥buffer Buffer

  • type 字符串(可选) - 可以是 selectionclipboard;默认为 'clipboard'。selection 仅在 Linux 上可用。

    ¥type string (optional) - Can be selection or clipboard; default is 'clipboard'. selection is only available on Linux.

buffer 作为 format 写入剪贴板。

¥Writes the buffer into the clipboard as format.

const { clipboard } = require('electron')

const buffer = Buffer.from('writeBuffer', 'utf8')
clipboard.writeBuffer('public/utf8-plain-text', buffer)

clipboard.write(data[, type])

  • data 对象

    ¥data Object

    • text 字符串(可选)

      ¥text string (optional)

    • html 字符串(可选)

      ¥html string (optional)

    • image NativeImage(可选)

      ¥image NativeImage (optional)

    • rtf 字符串(可选)

      ¥rtf string (optional)

    • bookmark 字符串(可选) - text 处的 URL 标题。

      ¥bookmark string (optional) - The title of the URL at text.

  • type 字符串(可选) - 可以是 selectionclipboard;默认为 'clipboard'。selection 仅在 Linux 上可用。

    ¥type string (optional) - Can be selection or clipboard; default is 'clipboard'. selection is only available on Linux.

data 写入剪贴板。

¥Writes data to the clipboard.

const { clipboard } = require('electron')

clipboard.write({
text: 'test',
html: '<b>Hi</b>',
rtf: '{\\rtf1\\utf8 text}',
bookmark: 'a title'
})

console.log(clipboard.readText())
// 'test'

console.log(clipboard.readHTML())
// <meta charset='utf-8'><b>Hi</b>

console.log(clipboard.readRTF())
// '{\\rtf1\\utf8 text}'

console.log(clipboard.readBookmark())
// { title: 'a title', url: 'test' }