我想要一个按钮来将一些文本(从剪贴板)粘贴到输入字段中。
以下代码片段适用于 Chromium,但不适用于 Firefox。
<input>
<button>paste</button>
<script>
document.querySelector('button').addEventListener('click', () =>
navigator.clipboard.readText().then(text => document.querySelector('input').value = text)
);
</script>
有没有办法在Firefox中达到同样的效果?
Firefox 74 至 124 版本有隐藏测试实验:
dom.events.testing.asyncClipboard
(https://bugzil.la/1597857)
Firefox v103 也改变了逻辑:
dom.events.asyncClipboard.readText
启用了当前粘贴选项作为列表菜单,类似于“右键单击菜单”(为了避免这些列表菜单,可以通过添加到 Firefox 74+ 的选项来启用)。dom.events.testing.asyncClipboard
不再独立工作 - 需要同时启用两者。这两个首选项仍然不支持像 Chrome 那样的域权限,但带有附加菜单的机制现在可以保护剪贴板(如果我们禁用添加到 Firefox 74+ 的测试版本)。
从 Firefox 125 开始,粘贴命令现在完全可以工作。您提供的演示代码将可以工作。