相关疑难解决方法(0)

复制到Chrome扩展程序中的剪贴板

我正在为谷歌浏览器做一个扩展,我遇到了麻烦.

我需要在弹出窗口中单击将只读textarea的内容复制到剪贴板.有没有人知道使用纯Javascript和没有Flash的最佳方法?我也在扩展中加载了jQuery,如果有帮助的话.我目前的(非工作)代码是......

function copyHTMLCB() {
$('#lb_html').select();
$('#lb_html').focus();
textRange = document.lb_html_frm.lb_html.createTextRange();
textRange.execCommand("RemoveFormat");
textRange.execCommand("Copy");
alert("HTML has been copied to your clipboard."); }
Run Code Online (Sandbox Code Playgroud)

javascript clipboard google-chrome-extension

48
推荐指数
5
解决办法
5万
查看次数

如何在 Manifest_version 3 Chrome 扩展程序中将内容复制到剪贴板?

作为参考,为了在 Chrome 扩展中读取剪贴板文本,您必须:

  • 在清单中请求“clipboardRead”权限
  • 创建一个后台脚本,因为只有后台脚本可以访问剪贴板
  • 在背景页面中创建一个元素以接受剪贴板粘贴操作。如果将其设为文本区域,您将获得纯文本,如果将其设为 contentEditable=true 的 div,您将获得格式化 HTML
  • 如果要将剪贴板数据传递回页面内脚本,则需要使用消息传递 API

但这仅适用于manifest_version 2,因为在manifest_version 3中你不能有后台脚本,而是有一个服务工作者。

在这个服务工作者中你不能拥有正常的功能,所以我有一个

chrome.runtime.onMessage.addListener
Run Code Online (Sandbox Code Playgroud)

例如,在此“manifest_version 3 服务工作线程 background.js 脚本”中,我从 popup.html 调用一条消息。

但问题是这个服务人员没有“文档”,所以我无法创建文本区域来执行复制内容并调用 document.execCommand 的技巧。

那么...有什么方法可以将 Manifest Version 3 中的内容复制到剪贴板吗?

clipboard google-chrome google-chrome-extension

7
推荐指数
1
解决办法
3630
查看次数