Skip to main content

clipboard

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

进程:主进程渲染进程 已弃用(仅限非沙盒)

🌐 Process: Main, Renderer Deprecated (non-sandboxed only)

note

在渲染进程中使用 clipboard API 已不推荐使用。

info

如果你想从渲染进程调用此 API, 请将 API 调用放在你的预加载脚本中,并使用 contextBridge API 暴露 它。

在 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:

note

实验性 API 已被标记为实验性,并且未来可能会被移除。

clipboard.readText([type])

  • type 字符串(可选)- 可以是 selectionclipboard;默认值为 'clipboard'。selection 仅在 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 字符串
  • type 字符串(可选)- 可以是 selectionclipboard;默认值为 'clipboard'。selection 仅在 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 上可用。

返回 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 字符串
  • type 字符串(可选)- 可以是 selectionclipboard;默认值为 'clipboard'。selection 仅在 Linux 上可用。

markup 写入剪贴板。

🌐 Writes markup to the clipboard.

const { clipboard } = require('electron')

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

clipboard.readImage([type])

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

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

🌐 Returns NativeImage - The image content in the clipboard.

clipboard.writeImage(image[, type])

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

image 写入剪贴板。

🌐 Writes image to the clipboard.

clipboard.readRTF([type])

  • type 字符串(可选)- 可以是 selectionclipboard;默认值为 'clipboard'。selection 仅在 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 字符串
  • type 字符串(可选)- 可以是 selectionclipboard;默认值为 'clipboard'。selection 仅在 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 字符串
  • url 字符串

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

🌐 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 上未使用
  • url 字符串
  • type 字符串(可选)- 可以是 selectionclipboard;默认值为 'clipboard'。selection 仅在 Linux 上可用。

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

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

note

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

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 以纯文本形式写入查找剪贴板(存储活动应用查找面板当前状态信息的剪贴板)。当从渲染进程调用此方法时,会使用同步 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 上可用。

清除剪贴板内容。

🌐 Clears the clipboard content.

clipboard.availableFormats([type])

  • type 字符串(可选)- 可以是 selectionclipboard;默认值为 'clipboard'。selection 仅在 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 字符串
  • type 字符串(可选)- 可以是 selectionclipboard;默认值为 'clipboard'。selection 仅在 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 字符串

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

🌐 Returns string - Reads format type from the clipboard.

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

clipboard.readBuffer(format) 实验性

🌐 clipboard.readBuffer(format) Experimental

  • format 字符串

返回 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 字符串
  • buffer 缓冲区
  • type 字符串(可选)- 可以是 selectionclipboard;默认值为 'clipboard'。selection 仅在 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 对象
    • text 字符串(可选)
    • html 字符串(可选)
    • image 本地图片(可选)
    • rtf 字符串(可选)
    • bookmark 字符串(可选)- text 的 URL 标题。
  • type 字符串(可选)- 可以是 selectionclipboard;默认值为 'clipboard'。selection 仅在 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' }