<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在瀏覽器中可以通過 JavaScript 指令碼來讀寫剪貼簿資料,常用的是 document.execCommand
方法:
// 複製資料 const inputElement = document.querySelector('#input') inputElement.select() document.execCommand('copy') // 貼上資料 const pasteText = document.querySelector('#output') pasteText.focus() document.execCommand('paste')
不過該方法有兩個缺點:
後來瀏覽器廠商提出了非同步 Clipboard API,但限制很多,例如:
而在 Electron 中讀寫剪貼簿非常容易,因為 clipboard 模組提供了很多呼叫系統剪貼簿相關的 API:
這些 API 既可以在主程序中呼叫,也可以在渲染程序中呼叫。
但是需要注意,在渲染程序中(即 preload.js 指令碼中),必須是非沙箱環境下才能使用 clipboard 模組,而 Electron 建立視窗時是預設開啟沙箱模式的,因此要手動設定 sandbox 為 false,否則會報下面的錯:
接下來就為大家講解 Electron 剪貼簿模組中的常用方法:
availableFormats
用於檢視當前剪貼簿內支援的資料格式。剪貼簿內的資料一般都要經歷兩個環節:
假設使用者複製帶樣式的文字,那麼剪貼簿會存放 RTF 和純文字兩種格式的資料,貼上時,目標視窗會自動優先選擇最描述性格式的資料,如果視窗識別 RTF,則使用帶格式的資料,否則就使用文字資料,此時格式設定資訊丟失。
舉個例子,例如我在網頁上覆制百度的 logo,會得到兩種格式的資料:
html
格式tiff
格式此時如果呼叫 availableFormats
方法,會得到兩種結果:
const formats = clipboard.availableFormats() console.log(formats) // [ 'text/html', 'image/png' ]
應用程式還可以自己註冊貼上板格式(registered clipboard formats),例如在 vscode 裡面複製了一段程式碼,會得到三種格式的資料:
html
utf8-plain-text
org.chromium.web-custom-data
其中最後一種就是 vscode 自定義的資料格式,可以呼叫 availableFormats
驗證一下:
const formats = clipboard.availableFormats() console.log(formats) // [ 'text/plain', 'text/html', 'vscode-editor-data' ]
可以看到,最後一種是 vscode-editor-data 是自定義的。
從剪貼簿讀取或向剪貼簿寫入純文字資料:
clipboard.writeText('寫入文字') const result = clipboard.readText() console.log(result) // 寫入文字
從剪貼簿讀取或向剪貼簿寫入 HTML 格式資料:
clipboard.writeHTML('<p style="color: red">紅色</p>') const result = clipboard.readHTML() console.log(result) // <meta charset='utf-8'><p style="color: red">紅色</p>
從剪貼簿讀取或向剪貼簿寫入圖片格式資料:
clipboard.writeImage(nativeImage.createFromPath(path.join(__dirname, 'apple.png'))) const result = clipboard.readImage() console.log(result)
從剪貼簿讀取或向剪貼簿寫入 RTF 格式資料:
clipboard.writeRTF('{rtf1ansi{fonttblf0fswiss Helvetica;}f0pardnThis is some {b bold} text.parn}') const result = clipboard.readRTF() console.log(result)
這個 API 最簡單,直接清空剪貼簿內容:
clipboard.clear()
以上就是Electron 剪貼簿實現範例詳解的詳細內容,更多關於Electron 剪貼簿的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45