我很難找到關於如何爲「Ctrl + C」添加偵聽器,獲取剪貼板數據,然後回寫到Chrome擴展中的剪貼板的最新信息。我發現的所有舊代碼都是針對現在已棄用的舊版本。如何在Chrome擴展程序中獲取剪貼板數據?
9
A
回答
13
基本上,您可以使用document.execCommand('paste|copy|cut')
來操縱剪貼板。
- 您需要在清單中指定
"clipboardWrite"
permissions。 - 創建
<input>
元素(或<textarea>
) - 認沽重點是
- 呼叫
document.execCommand('paste')
- 抓住你的字符串從
<input>
value
屬性。
這適用於我複製數據到剪貼板。
3
爲了在Chrome擴展閱讀剪貼板文本,你必須:
- 請求「clipboardRead」許可,您的清單
- 創建一個後臺腳本,因爲只有後臺腳本可以訪問剪貼板
- 在您的後臺頁面中創建一個元素來接受剪貼板粘貼操作。如果你將它設置爲textarea,如果你將它設置爲contentEditable = true的div,你會得到格式化的HTML
- 如果你想將剪貼板數據傳回給頁面腳本,會需要使用消息傳遞API
要看到的這一切工作的例子,見我BBCodePaste擴展:
https://github.com/jeske/BBCodePaste
下面是如何讀取剪貼板文本一例背景網頁:
bg = chrome.extension.getBackgroundPage(); // get the background page
bg.document.body.innerHTML= ""; // clear the background page
// add a DIV, contentEditable=true, to accept the paste action
var helperdiv = bg.document.createElement("div");
document.body.appendChild(helperdiv);
helperdiv.contentEditable = true;
// focus the helper div's content
var range = document.createRange();
range.selectNode(helperdiv);
window.getSelection().removeAllRanges();
window.getSelection().addRange(range);
helperdiv.focus();
// trigger the paste action
bg.document.execCommand("Paste");
// read the clipboard contents from the helperdiv
var clipboardContents = helperdiv.innerHTML;
相關問題
- 1. 在Chrome擴展程序中複製到剪貼板
- 2. Chrome擴展程序支持將圖像複製到剪貼板?
- 3. 獲取剪貼板數據
- 4. 如何閱讀谷歌Chrome擴展中的剪貼板文本
- 5. 如何從Google Chrome擴展程序將文本複製到剪貼板?
- 6. 剪貼板複製/粘貼內容腳本(Chrome擴展)
- 7. 獲取剪貼板
- 8. 如何從OS X粘貼板/剪貼板中獲取HTML數據?
- 9. 複製到Chrome瀏覽器擴展剪貼板
- 10. 如何從Firefox中的剪貼板獲取數據
- 11. 剪貼板在Safari和Chrome
- 12. Chrome擴展程序:將textarea中的選定文本替換爲剪貼板數據
- 13. 開發FireFox擴展,剪貼板
- 14. 如何從剪貼板獲取通知?
- 15. 如何從剪貼板獲取截圖?
- 16. 如何獲取剪貼板圖標
- 17. 在javascript中獲取作爲數組的剪貼板數據
- 18. Chrome擴展程序,獲取devtools HAR數據
- 19. Chrome擴展程序:如何獲取標籤中的元素?
- 20. 獲取剪貼板中的數據在C++中
- 21. 獲取Chrome擴展
- 22. 如何獲取剪貼板數據的base64字符串?
- 23. 獲取URL在IFRAME/Chrome擴展程序獲取的AJAX出
- 24. 如何在跨瀏覽器中讀取剪貼板數據?
- 25. 如何從Chrome儀表板下載Chrome擴展程序?
- 26. Python - 通過子流程獲取和設置剪貼板數據
- 27. 從剪貼板獲取數據粘貼使用Javascript?
- 28. Chrome擴展程序保存數據
- 29. Chrome擴展程序:內存數據
- 30. Chrome擴展程序 - 不保存數據
我可以使用「粘貼」從剪貼板中提取數據嗎? – schumacherj
是的,它應該工作。我已經更新了答案。否則,我不明白爲什麼chrome需要'clipboardWrite'權限。 –
它不適合我... – ihorko