更新时间:2023年3月09日 14:19:15 作者:乔克利
本文主要介绍剪贴板实现示例的详细讲解。 有需要的朋友可以参考一下。 我希望它能有所帮助。 祝你进步很大,早日升职加薪
目录
文本
在浏览器中,可以通过脚本来读写剪贴板数据,常用的方法是:
// 复制数据 const inputElement = document.querySelector('#input') inputElement.select() document.execCommand('copy') // 粘贴数据 const pasteText = document.querySelector('#output') pasteText.focus() document.execCommand('paste')
然而,这种方法有两个缺点:
后来浏览器厂商提出了异步API,但是有很多限制,比如:
在 中读写剪贴板非常容易,因为模块提供了很多调用系统剪贴板相关的API:
这些API既可以在主进程中调用,也可以在渲染进程中调用。
但需要注意的是,在渲染过程中(即.js脚本中),该模块必须在非沙箱环境中使用,而创建窗口时默认启用了沙箱模式,因此必须需要手动设置为false,否则会报错如下:
接下来我就讲解一下剪贴板模块中的常用方法:
用于查看当前剪贴板支持的数据格式。 剪贴板中的数据一般经过两个步骤:
假设用户复制样式文本,剪贴板将以 RTF 和纯文本格式存储数据。 粘贴时,目标窗口会自动选择最具有描述性的数据格式。 如果窗口识别 RTF,则将使用格式化数据。 ,否则使用文本数据,在这种情况下格式信息会丢失。
例如,如果我在网页上复制百度的标志,我将获得两种格式的数据:
如果此时调用该方法,会得到两个结果:
const formats = clipboard.availableFormats() console.log(formats) // [ 'text/html', 'image/png' ]
应用程序还可以注册粘贴板格式( ),例如在其中复制一段代码,将会得到三种格式的数据:
最后一种是自定义的数据格式,可以通过调用来验证:
const formats = clipboard.availableFormats() console.log(formats) // [ 'text/plain', 'text/html', 'vscode-editor-data' ]
可以看到,最后一项是--data是自定义的。
和
clipboard.writeText('写入文本') const result = clipboard.readText() console.log(result) // 写入文本
和
从剪贴板读取或写入 HTML 格式的数据:
clipboard.writeHTML('红色
') const result = clipboard.readHTML() console.log(result) //ta charset='utf-8'> 红色
和
从剪贴板读取图像格式数据或将图像格式数据写入剪贴板:
clipboard.writeImage(nativeImage.createFromPath(path.join(__dirname, 'apple.png'))) const result = clipboard.readImage() console.log(result)
和
从剪贴板读取或写入 RTF 格式的数据:
clipboard.writeRTF('{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard\nThis is some {\b bold} text.\par\n}') const result = clipboard.readRTF() console.log(result)
清除
这个API最简单,直接清除剪贴板的内容:
clipboard.clear()
以上就是剪贴板实现示例的详细内容。 更多关于剪贴板的知识,请关注脚本之家其他相关文章!