js实现复制功能

发布时间 2023-03-27 09:52:20作者: 对白'

可以使用以下代码实现复制功能:

1 function copyText() {
2   var copyText = document.getElementById("myText");
3   copyText.select();
4   document.execCommand("copy");
5   alert("Text copied to clipboard.");
6 }

其中,myText 是要复制的文本框的 id,这里使用 getElementById() 方法获取了文本框的引用。然后使用 select() 方法选中文本,使用 execCommand('copy') 方法将选中的文本复制到剪贴板中。最后使用 alert()方法提示复制成功。

你可以将这个功能与一个按钮绑定,例如:

<input type="text" id="myText" value="Hello World!">
<button onclick="copyText()">Copy text</button>

这里将这个按钮的点击事件与 copyText() 函数绑定,点击按钮后即可触发复制功能。

还有一种方式是使用 Clipboard API,它支持复制、粘贴和剪切文本、HTML 和文件等内容。示例代码如下:

function copyText() {
  var text = document.getElementById("myText").value;
  navigator.clipboard.writeText(text)
    .then(function() {
      alert("Text copied to clipboard.");
    })
    .catch(function(error) {
      console.error('Failed to copy text: ', error);
    });
}

它的用法与前面的方法类似,只不过使用了 navigator.clipboard.writeText() 方法将文本写入剪贴板,然后可以通过 .then() 方法在成功写入后弹出提示,或者在出现错误时使用 .catch() 方法输出错误信息。

需要注意的是,这种方式需要在 HTTPS 协议下才能使用。如果在 HTTP 协议下使用,需要用户手动授权才能进行剪贴板操作。

或者使用第三方库 clipboard.js

  • clipboard.js 官网:https://clipboardjs.com/

  • clipboard.js Github:https://github.com/zenorocha/clipboard.js 

    new ClipboardJS('#copyInput', {
        text: function(trigger) {
            return document.getElementById("myInput").value;
        }
    }).on('success', function(e) {
       alert("复制成功!!!");
       e.clearSelection();
    }).on('error', function(e) {
        alert('Error!');
    });