为什么用Clipboard API复制内容总是提示不允许?
我写了个按钮点击复制文本的功能,用navigator.clipboard.writeText(),但总弹出“不允许此操作”的提示。试过加clipboard-write权限到manifest.json,但还是不行,是不是还有其他设置没注意到?
代码是这样的:
document.querySelector('button').addEventListener('click', async () => {
try {
await navigator.clipboard.writeText('复制内容');
console.log('复制成功');
} catch(err) {
console.error('复制失败:', err);
}
});
在Chrome浏览器测试时,控制台报错“Not allowed to use clipboard.writeText”,但按钮确实是用户点击触发的啊…
--unsafely-treat-insecure-origin-as-secure=http://你的地址来临时测试。另外确认一下是不是浏览器版本太老了,低于 Chrome 66 的都不支持 Clipboard API。代码本身没问题,环境配好就行。
用户手势触发也要在事件处理器里直接调用,别异步延迟。
只要是在用户点击事件中直接调用,HTTPS 环境下,就行了。