JavaScript剪贴板操作须在用户手势触发且安全上下文(HTTPS/localhost)中使用navigator.clipboard API,writeText()和readText()均返回Promise,需try-catch处理;旧浏览器可降级用execCommand('copy')。

JavaScript 中的剪贴板操作主要通过 navigator.clipboard API 实现,它提供了异步读写系统剪贴板的能力。但出于安全考虑,浏览器严格限制了使用条件:必须在用户触发的事件(如点击、键盘快捷键)中调用,且页面需处于安全上下文(HTTPS 或 localhost)。
写入剪贴板(copy)
将文本写入剪贴板最常用的是 clipboard.writeText(),它返回一个 Promise,成功时无返回值,失败时抛出异常。
示例:
document.getElementById('copyBtn').addEventListener('click', async () => {
try {
await navigator.clipboard.writeText('Hello, world!');
console.log('已复制到剪贴板');
} catch (err) {
console.error('复制失败:', err);
}
});登录后复制
注意:不能在定时器、AJAX 回调或页面加载完成时直接调用,否则会因“非用户激活”被拒绝。
立即学习“Java免费学习笔记(深入)”;
读取剪贴板(paste)
读取文本用 clipboard.readText(),同样需用户手势触发,且部分浏览器(如 Safari)可能要求额外权限或仅支持 HTTPS。
常见做法是监听粘贴事件并主动读取:
标签: javascript java ajax 浏览器 app edge safari ai
还木有评论哦,快来抢沙发吧~