gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 17:17:52 24 4
gpt4 key购买 nike

作为引用 here为了在 chrome 扩展中读取剪贴板文本,您必须:

  • 在您的 list 中请求“clipboardRead”权限
  • 创建一个后台脚本,因为只有后台脚本才能访问剪贴板
  • 在您的背景页面中创建一个元素以接受剪贴板粘贴操作。如果你把它设为 textarea,你会得到纯文本,如果你把它设为 contentEditable=true 的 div,你会得到 Formatted HTML
  • 如果要将剪贴板数据传递回页内脚本,则需要使用消息传递 API

  • 但这仅适用于 manifest_version 2,因为在 manifest_version 3 中,您不能拥有后台脚本,而是服务 worker 。
    在这个 service worker 中你不能有正常的功能,所以我有一个
    chrome.runtime.onMessage.addListener
    例如,在这个“manifest_version 3 service worker background.js 脚本”中,我从 popup.html 调用了一条消息。
    但是,问题是这个 service worker 没有“文档”,所以我无法创建 textarea 来复制那里的内容并调用 document.execCommand。
    那么......有没有办法将内容复制到 list 版本 3 中的剪贴板?

    最佳答案

    这是一个非常粗略(但有效)的解决方案:

  • 在您的后台脚本中,设置某种监听器来触发复制功能。
  • 设置一个注入(inject)脚本/函数,用要复制的所需文本创建一个不可见的文本区域。在同一个脚本/函数中,添加复制到剪贴板 ala 解决方案 here .
  • 在您的 background.js 脚本中,设置代码以检索当前事件选项卡(如@wOxxOm 建议的那样)并使用选项卡 ID to dynamically execute your injection script/function .

  • 由于您注入(inject)的脚本(又名内容脚本)可以访问一个文档,此时该文档是打开网页的文档,您可以创建一个不可见的textarea,将textarea设置为要复制的文本,然后使用document .execCommand("复制");将文本复制到剪贴板。
    Here是我的 background.js 脚本的一个示例,当您按 Ctrl+Shift+K 时,它会将文本复制到剪贴板。

    关于google-chrome - 如何在 Manifest_version 3 Chrome 扩展程序中将内容复制到剪贴板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68090436/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com