navigator.clipboard.readText() 在 js 中不起作用

Nim*_*ian 2 html javascript css php vue.js

我有这个粘贴代码:

navigator.clipboard.readText().then(
  clipText => document.querySelector("#Note").innerText += clipText);
Run Code Online (Sandbox Code Playgroud)

但它有这个错误:

未捕获的类型错误:navigator.clipboard.readText 不是函数

帮我解决这个错误

max*_*eni 22

在 Firefox(版本 94,2021 年 11 月)上读取剪贴板似乎不起作用并引发错误:

var promise = navigator.clipboard.readText();

// Uncaught TypeError: navigator.clipboard.readText is not a function
Run Code Online (Sandbox Code Playgroud)

MDN Web Docs 上的文档建议通过 Permission API 授予权限:

必须先授予 Permissions API 的“剪贴板读取”权限,然后才能从剪贴板读取数据。

clipboard-read似乎不支持:

navigator.permissions.query({ name: "clipboard-read" });

// Uncaught TypeError: 'clipboard-read' is not a valid value for enumeration PermissionName.
Run Code Online (Sandbox Code Playgroud)

启用剪贴板读取(和写入)的唯一方法是dom.events.testing.asyncClipboard在 Firefox 客户端上启用:

  1. about:config在导航栏输入
  2. 单击“接受风险并继续”
  3. 搜索dom.events.testing.asyncClipboard并设置true

  • 在我的例子中,我还必须将 `dom.events.asyncClipboard.readText` 设置为 true。 (3认同)

van*_*owm 7

我猜你是在 Firefox 中测试它,在这种情况下:

Firefox 仅支持在浏览器扩展中读取剪贴板,使用“clipboardRead”扩展权限。

https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/readText#browser_compatibility