Firefox:navigator.clipboard.readText 不是函数

问题描述 投票:0回答:1

我们在 xtermjs 之上构建了

paste-on-right-click
功能,该功能在 Chrome 和 Edge 中运行良好,但今天我收到通知,它在 Firefox 中失败。我很惊讶。根据MDN上的兼容性表,应该支持
readText()
,而且对于同源内容应该是无缝的(无权限提示)。

但是,当我在控制台上检查

navigator.clipboard
实例时,它根本不包含
readText
方法。有任何想法吗?是否有可能以编程方式从 Firefox 中的剪贴板读取内容?

firefox clipboard
1个回答
0
投票

这些注释令人困惑,但出于安全原因,Firefox 默认情况下仍然仅支持 Web 应用程序的 navigator.clipboard 对象的 writeText。

仅浏览器插件/扩展支持读取操作。

作为用户,您可以通过使用

dom.events.testing.asyncClipboard
dom.events.asyncClipboard.readText
true
设置为
about:config
来启用从剪贴板的读取功能,但您不应该鼓励用户这样做,因为它会授予每个网站读取其剪贴板的权限。

根本问题是 Firefox 不支持 Clipboard 对象的 Permissions API,因此您的应用程序无法要求用户授予其对剪贴板的访问权限。

这有点痛苦,但是没有编程方式来访问剪贴板(默认情况下)。旧的

execCommand('paste')
技巧也失败了(并且已被弃用),因此对于 Firefox,您可以选择让用户手动将文本粘贴到文本区域并检测更改事件。

拖/放功能可能是一个选项,具体取决于您的用例。

© www.soinside.com 2019 - 2024. All rights reserved.