如何在 Chrome 扩展程序中使用 navigator.clipboard.readText()?

2023-12-08

我编写了一个 Firefox 扩展来读取剪贴板,如果它有一些 PEM 证书,它将在新选项卡中打印其详细信息。我正在尝试移植到 Chrome。这是行不通的。我究竟做错了什么?

我在manifest.json中请求了clipboardRead,并在后台脚本中运行它,它在Firefox中运行良好。

 navigator.clipboard.readText().then(function (textFromClipboard) {
   //do stuff with textFromClipboard
 });

这在 Chrome 中失败,并显示“无法在‘剪贴板’上执行‘readText’:非法调用”。我究竟做错了什么?我如何才能在 Chrome 中也实现此功能?大多数答案涉及创建输入、获取焦点、执行粘贴。这真的很复杂,我希望我不必这样做。它在 Firefox 中运行得很好,为什么在 Chrome 中却很复杂?


您可以使用@bumble/clipboard。它是一个用于模拟剪贴板 API 的 Chrome 扩展的 npm 库。

它不需要用户交互,并且在后台脚本中工作。它只需要clipboardRead or clipboardWrite权限。

import { clipboard } from '@bumble/clipboard'

// Read text from the clipboard, or "paste"
clipboard.readText()
  .then((text) => {
    console.log('clipboard contents', text)
  })

// Write text to the clipboard, or "copy"
clipboard.writeText('write this to the clipboard')
  .then((text) => {
    console.log(text, 'was written to the clipboard')
  })

披露:我为自己编写这个库是为了解决 @ddreian 提到的相同问题。它是一个基于 Promise 的非阻塞解决方案,使用document.execCommand在引擎盖下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Chrome 扩展程序中使用 navigator.clipboard.readText()? 的相关文章

随机推荐

  • UDP 是 IPC 的可靠协议吗?

    如果我纯粹使用 UDP 进行进程间通信 即在 1 个系统中 不涉及网络 我可以认为它可靠吗 或者我还需要担心数据包丢失等问题吗 Note这是一个实际的问题 而不是理论问题 如果不同操作系统的答案有所不同 请解释具体情况 特别是包括 Wind
  • 如何使 NSURLConnection 文件下载工作?

    我有一个 ViewController 声明为 interface DownloadViewController UIViewController
  • 对 JavaScript 中的文档尺寸感到困惑

    我对 JavaScript 中用于获取文档尺寸的不同属性以及如何获取这些数字感到非常困惑 有人可以推荐一个好地方来开始了解我如何获取文档的大小并正确放置内容吗 我会尽量简单地回答 文档和视口 在几何方面 有两组尺寸需要注意 文档尺寸 反映加
  • Android Studio安装后无法启动

    安装Android Studio后 无法启动 但在获取Android SDK组件信息时显示以下错误 Internal error Please report to https code google com p android issues
  • 设置复合索引时出错

    我想在我的 mongoDB 中的 fb id 和 ts 上设置复合索引 所以我做了 PRIMARY gt db sessions ensureIndex fb id 1 ts 1 unique true 但我收到以下错误 E11000 du
  • 打印变量的名称和值

    在调试的时候 我们经常会看到这样的打印语句 print x easy to type but no context print x x more context harder to type 12 x 12 如何编写一个函数来获取变量或变量
  • 在tomcat中部署jar

    可以在 tomcat 中部署一个简单的 jar 并运行它 一个简单的例子 就是执行 main 并打印 hello world P 不 这不对 您必须创建一个包含 jar 和 servlet 至少 的 Web 应用程序 看看这个http do
  • 将端口号绑定到 TCP 套接字(outgoin)以发送数据包

    我知道这并不容易绑定端口号 to TCP套接字你会用来发送数据 因为系统通常将随机端口绑定到套接字 但我读到一篇文章 通过使用一些低层网络可以将端口号绑定到 TCP 套接字然后使用它发送数据的方法吗 有谁知道如何做到这一点 我正在使用c语言
  • 未为右值引用调用 C++ 移动构造函数[重复]

    这个问题在这里已经有答案了 class MyClass public MyClass std cout lt lt default constructor n MyClass MyClass a std cout lt lt copy co
  • Xamarin for Visual Studio 2015 中的配置文件错误(无匹配)

    我正在尝试在 iPhone 上构建 运行 Xamarin Forms PCL 以进行测试和调试 我突然收到以下错误 没有 iOS 签名身份与指定的配置文件匹配 正如您从下图中看到的 它正在寻找的配置文件位于 Mac 上的正确位置 我清除了所
  • 调整cell.UIImageView.image的大小

    我也有不同尺寸的不同图像 我想将其放在每个单元格中的 cell imageView image 中 但我想在每个单元格中制作相同的尺寸 尽管图像具有不同的尺寸 我在我的代码中写下这一点 UIImage image UIImage image
  • 对“Makefile”无需执行任何操作

    我应该为我需要做的项目编写一个 Makefile 我已经完成了所有工作 但是当我尝试这样做时 我得到以下输出 make 对 Makefile 无需执行任何操作 造成这种情况的原因可能是什么 这是我的 Makefile 文件 Makefile
  • 将 GLM 公式设置为 R 中的列总和

    我正在尝试设置公式GLM作为列的集合train train 1 99 model lt glm train 100 train 1 99 data train family binomial 无法找到在 R 中执行此操作的正确方法 如果你需
  • 就浮点而言,是否有正确的常量表达式用于其最高有效位?

    问题 给定一个浮点常量表达式 我们可以编写一个宏来计算一个常量表达式 该常量表达式的值是等于尾数最高位的 2 的幂吗 等效地 这只是小于或等于输入幅度的两个的最大幂 出于这个问题的目的 我们可以忽略 接近溢出或接近下溢值 它们可以通过有限多
  • 图表 x 轴编号

    我正在使用 WinForms 图表来可视化一些数据 我想要 x 轴网格线位于我指定的点处 请看下面的例子 public partial class Form1 Form public Form1 InitializeComponent Ad
  • DBMS 或 SVN 中的集中存储库

    我正在努力建立一个集中存储库来存储企业架构师 来自 sparx 系统 生成的工件 供 6 8 人的团队使用 最初考虑托管 PostgreSQL 数据库来集中存储工件 而出现的另一个选择是使用 SVN 查看 EA 文档 没有清楚地了解所考虑的
  • Entity Framework Core / SQLite:Join 后的 GroupJoin“展平”结果

    使用 Entity Framework Core 2 1 和 SQLite 数据库 如果在另一个 Join 之后使用 LINQ GroupJoin 我会得到不同的行为 目前尚不清楚这是一个错误还是我忽略了某些内容 我创建了一个最小的 VS2
  • 以编程方式向 hibernate 提供数据源

    我想知道是否可以以编程方式提供 DataSource 对象来休眠配置 在我们的系统中 我们构建了一个数据源对象 这是一个 Java SE 应用程序 我想从纯 JDBC 代码转移到 hibernate 如果有人知道 JPA 的答案也没关系 您
  • 模拟react元素上的点击事件

    我正在尝试模拟一个 click event on a React元素 但我不明白为什么它不起作用 当我发射时它没有反应event 我想仅使用 JavaScript 发布 Facebook 评论 但我陷入了第一步 执行 click on di
  • 如何在 Chrome 扩展程序中使用 navigator.clipboard.readText()?

    我编写了一个 Firefox 扩展来读取剪贴板 如果它有一些 PEM 证书 它将在新选项卡中打印其详细信息 我正在尝试移植到 Chrome 这是行不通的 我究竟做错了什么 我在manifest json中请求了clipboardRead 并