如何将内容复制到Manifest_Version 3 Chrome扩展中的剪贴板? [英] How to copy contents to clipboard in a Manifest_version 3 Chrome Extension?
本文介绍了如何将内容复制到Manifest_Version 3 Chrome扩展中的剪贴板?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
作为引用here要读取Chrome扩展中的剪贴板文本,您必须:
- 请求清单中的剪贴板读取权限
- 创建后台脚本,因为只有后台脚本可以访问剪贴板
- 在背景页中创建一个元素以接受剪贴板粘贴操作。如果您将其设置为文本区域,您将获得纯文本;如果您将其设置为带有Content Edable=True的div,您将获得格式化的HTML
- 如果要将剪贴板数据传回页面内脚本,则需要使用消息传递API
但这仅适用于MANIFEST_VERSION 2,因为在MANIFEST_VERSION 3中,您不能有后台脚本,而只能有服务工作进程。
在这个服务人员中,您不能有正常的功能,所以我有一个
chrome.runtime.onMessage.addListener
在这个&Quot;MANIFEST_VERSION 3服务工作器Backack.js脚本中,我从我的popup.html中调用了一条消息。
但是,问题是该服务工作人员没有";文档";,因此我无法创建文本区域来执行复制内容并调用Docent.execCommand的操作。
所以...是否有办法将内容复制到清单版本3中的剪贴板?
推荐答案
以下是一个非常简陋(但有效)的解决方案:
- 在您的后台脚本中,设置某种侦听器以触发复制功能。
- 设置注入脚本/函数,该脚本/函数用要复制的所需文本创建不可见的文本区。在同一脚本/函数中,添加复制到剪贴板作为解决方案here。
- 在您的后台.js脚本中,设置代码以检索当前活动的选项卡(如@wOxxOm所建议的)并使用选项卡IDto dynamically execute your injection script/function。
由于您的插入脚本(也称为内容脚本)可以访问文档(这次该文档是打开的网页的文档),因此您可以创建一个不可见的文本区,将该文本区设置为包含要复制的文本,然后使用Document.execCommand(&Quot;Copy&Quot;);将文本复制到剪贴板上。
Here是一个我的后台.js脚本示例,当您按Ctrl+Shift+K时,它会将文本复制到剪贴板上。
这篇关于如何将内容复制到Manifest_Version 3 Chrome扩展中的剪贴板?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文