方法:
navigator.clipboard.writeText('message')
该方法更为简单实用,且兼容性好,废话不多说,直接上代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<div class="message">这段文本将被复制</div>
<button class="btn">点击复制</button>
<script>
const copyEl = document.querySelector('.message')
const btnEl = document.querySelector('.btn')
btnEl.addEventListener('click', () => {
// 该方法可以写入特定字符串到操作系统的剪切板,并返回一个Promise
// 一旦剪贴板的内容被更新,它就会被解析。如果调用者没有写入剪贴板的权限,则拒绝写入剪切板(reject)
navigator.clipboard
.writeText(copyEl.textContent)
.then(() => {
console.log('复制成功')
})
.catch(() => {
console.log('复制失败')
})
})
</script>
</body>
</html>
该方法可以写入特定字符串到操作系统的剪切板,并返回一个Promise,复制成功调用resolve,复制失败调用reject,比方法一更方便快捷。选他就完事了。
Via. https://www.jianshu.com/p/601f6d4683bd
JavaScript 怎么实现点击按钮复制文本?
最直接的做法是监听按钮 click 事件,在回调里调用 navigator.clipboard.writeText(文本)。它会把字符串写入系统剪贴板,并返回 Promise,成功后进入 then,失败则进入 catch,便于做提示或兜底处理。
navigator.clipboard.writeText 复制的是哪段内容?
它复制的是你传入的字符串。示例里通常会先用 document.querySelector 获取文本元素,再读取 textContent 作为参数传给 writeText,这样就能把页面上指定区域的内容一键复制出去。
复制成功和失败要怎么处理?
writeText 返回 Promise,复制成功时走 resolve,对应 then;如果浏览器权限不足或环境不支持写入剪贴板,则会 reject,对应 catch。实战中建议在这两个分支里分别输出提示,方便用户知道结果。






