6

我有这个粘贴代码:

navigator.clipboard.readText().then(
  clipText => document.querySelector("#Note").innerText += clipText);

但它有这个错误:

未捕获的 TypeError:navigator.clipboard.readText 不是函数

帮我解决这个错误

4

2 回答 2

10

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

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

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

于 2021-05-07T23:37:59.777 回答
4

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

var promise = navigator.clipboard.readText();

// Uncaught TypeError: navigator.clipboard.readText is not a function

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.

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

  1. about:config在导航栏中输入
  2. 点击“接受风险并继续”
  3. 搜索dom.events.testing.asyncClipboard并设置true
于 2021-11-20T11:44:57.610 回答