本文将学习如何通过 JavaScript 实现复制功能。
我们可以使用 Clipboard API 的Clipboard.writeText()或Clipboard.write()方法来用指定数据覆盖剪贴板内容。
function myFunction() {
/* 获取文本内容 */
var copyText = document.getElementById("myInput");
/* 选择复制内容 */
copyText.select();
copyText.setSelectionRange(0, 99999); /* 为移动设备设置 */
/* 复制内容到文本域 */
navigator.clipboard.writeText(copyText.value);
/* 弹出已复制的内容 */
alert("复制的文本为: " + copyText.value);
}
可以将复制完成后,使用更友好的方式来提示:
function myFunction() {
var copyText = document.getElementById("myInput");
copyText.select();
copyText.setSelectionRange(0, 99999);
navigator.clipboard.writeText(copyText.value);
var tooltip = document.getElementById("myTooltip");
tooltip.innerHTML = "复制内容: " + copyText.value;
}
function outFunc() {
var tooltip = document.getElementById("myTooltip");
tooltip.innerHTML = "点击按钮复制";
}
我们可以下载 clipboard.js 并引入项目:
<script src="dist/clipboard.min.js"></script>
当然,更简单的是直接使用国内 CDN 库:
<script src="https://cdn.staticfile.org/clipboard.js/2.0.4/clipboard.min.js"></script>
new ClipboardJS('#copyInput', {
text: function(trigger) {
return document.getElementById("myInput").value;
}
}).on('success', function(e) {
alert("复制成功!!!");
e.clearSelection();
}).on('error', function(e) {
alert('Error!');
});
clipboard.js 浏览器支持