本文将学习如何通过 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 浏览器支持