clipboard
对系统剪贴板执行复制和粘贴操作。
如果您想在启用了上下文隔离的渲染进程中调用此 API,请将 API 调用放在您的预加载脚本中,并使用 contextBridge API 将其公开。
在 Linux 上,还有一个 selection 剪贴板。要操作它,您需要在每次调用方法时传递 selection。
const { clipboard } = require('electron')
clipboard.writeText('Example string', 'selection')
console.log(clipboard.readText('selection'))
方法
clipboard 模块具有以下方法:
实验性 API 会被标记出来,并且可能在未来被移除。
clipboard.readText([type])
typestring (可选) - 可以是selection或clipboard;默认为 'clipboard'。selection仅在 Linux 上可用。
返回 string - 剪贴板中的内容,作为纯文本。
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])
textstringtypestring (可选) - 可以是selection或clipboard;默认为 'clipboard'。selection仅在 Linux 上可用。
将 text 作为纯文本写入剪贴板。
const { clipboard } = require('electron')
const text = 'hello i am a bit of text!'
clipboard.writeText(text)
clipboard.readHTML([type])
typestring (可选) - 可以是selection或clipboard;默认为 'clipboard'。selection仅在 Linux 上可用。
返回 string - 剪贴板中的内容,作为标记语言。
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])
markupstringtypestring (可选) - 可以是selection或clipboard;默认为 'clipboard'。selection仅在 Linux 上可用。
将 markup 写入剪贴板。
const { clipboard } = require('electron')
clipboard.writeHTML('<b>Hi</b>')
clipboard.readImage([type])
typestring (可选) - 可以是selection或clipboard;默认为 'clipboard'。selection仅在 Linux 上可用。
返回 NativeImage - 剪贴板中的图像内容。
clipboard.writeImage(image[, type])
imageNativeImagetypestring (可选) - 可以是selection或clipboard;默认为 'clipboard'。selection仅在 Linux 上可用。
将 image 写入剪贴板。
clipboard.readRTF([type])
typestring (可选) - 可以是selection或clipboard;默认为 'clipboard'。selection仅在 Linux 上可用。
返回 string - 剪贴板中的内容,作为 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])
textstringtypestring (可选) - 可以是selection或clipboard;默认为 'clipboard'。selection仅在 Linux 上可用。
将 text 以 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
titlestringurlstring
返回一个包含 title 和 url 键的对象,表示剪贴板中的书签。当书签不可用时,title 和 url 值将为空字符串。在 Windows 上,title 值将始终为空。
clipboard.writeBookmark(title, url[, type]) macOS Windows
titlestring - 在 Windows 上未使用urlstringtypestring (可选) - 可以是selection或clipboard;默认为 'clipboard'。selection仅在 Linux 上可用。
将 title(仅 macOS)和 url 作为书签写入剪贴板。
Windows 上的大多数应用程序不支持将书签粘贴到其中,因此您可以使用 clipboard.write 将书签和回退文本同时写入剪贴板。
const { clipboard } = require('electron')
clipboard.writeBookmark('Electron Homepage', 'https://electron.js.cn')
clipboard.readFindText() macOS
返回 string - “查找”粘贴板中的文本,该粘贴板保存有关活动应用程序的“查找”面板当前状态的信息。
此方法从渲染进程调用时使用同步 IPC。每当应用程序激活时,都会重新从“查找”粘贴板读取缓存值。
clipboard.writeFindText(text) macOS
textstring
将 text 作为纯文本写入“查找”粘贴板(该粘贴板保存有关活动应用程序的“查找”面板当前状态的信息)。此方法从渲染进程调用时使用同步 IPC。
clipboard.clear([type])
typestring (可选) - 可以是selection或clipboard;默认为 'clipboard'。selection仅在 Linux 上可用。
清除剪贴板内容。
clipboard.availableFormats([type])
typestring (可选) - 可以是selection或clipboard;默认为 'clipboard'。selection仅在 Linux 上可用。
返回 string[] - 剪贴板 type 的支持格式数组。
const { clipboard } = require('electron')
const formats = clipboard.availableFormats()
console.log(formats)
// [ 'text/plain', 'text/html' ]
clipboard.has(format[, type]) Experimental
formatstringtypestring (可选) - 可以是selection或clipboard;默认为 'clipboard'。selection仅在 Linux 上可用。
返回 boolean - 剪贴板是否支持指定的 format。
const { clipboard } = require('electron')
const hasFormat = clipboard.has('public/utf8-plain-text')
console.log(hasFormat)
// 'true' or 'false'
clipboard.read(format) Experimental
formatstring
返回 string - 从剪贴板读取 format 类型。
format 应包含有效的 ASCII 字符并以 / 分隔。a/c、a/bc 是有效格式,而 /abc、abc/、a/、/a、a 是无效格式。
clipboard.readBuffer(format) Experimental
formatstring
返回 Buffer - 从剪贴板读取 format 类型。
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]) Experimental
formatstringbufferBuffertypestring (可选) - 可以是selection或clipboard;默认为 'clipboard'。selection仅在 Linux 上可用。
将 buffer 以 format 格式写入剪贴板。
const { clipboard } = require('electron')
const buffer = Buffer.from('writeBuffer', 'utf8')
clipboard.writeBuffer('public/utf8-plain-text', buffer)
clipboard.write(data[, type])
dataObjecttextstring (可选)htmlstring (可选)imageNativeImage (可选)rtfstring (可选)bookmarkstring (可选) -text中 URL 的标题。
typestring (可选) - 可以是selection或clipboard;默认为 'clipboard'。selection仅在 Linux 上可用。
将 data 写入剪贴板。
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' }