我很难找到关于如何为“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