js实现一键复制的几种方法

JS实现一键复制可以使用以下方法:

1、使用document.execCommand()方法实现复制:

1
2
3
4
5
6
7
8
function copyTextToClipboard(text) {
  var textarea = document.createElement("textarea");
  textarea.value = text;
  document.body.appendChild(textarea);
  textarea.select();
  document.execCommand("copy");
  document.body.removeChild(textarea);
}

使用示例:

1
copyTextToClipboard("Hello World");

注意:该方法在一些浏览器中可能不被支持。

2、使用Clipboard API实现复制:

1
2
3
4
5
6
7
function copyTextToClipboard(text) {
  navigator.clipboard.writeText(text).then(function() {
    console.log("Text copied to clipboard");
  }, function(err) {
    console.error("Failed to copy text to clipboard: ", err);
  });
}

使用示例:

1
copyTextToClipboard("Hello World");

注意:该方法需要浏览器支持Clipboard API。

3、使用document.execCommand()和Range对象实现复制:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function copyTextToClipboard(text) {
  var range = document.createRange();
  var selection = window.getSelection();
  var textarea = document.createElement("textarea");
   
  textarea.value = text;
  document.body.appendChild(textarea);
   
  range.selectNodeContents(textarea);
  selection.removeAllRanges();
  selection.addRange(range);
   
  textarea.setSelectionRange(0, textarea.value.length);
  document.execCommand("copy");
   
  document.body.removeChild(textarea);
}

使用示例:

1
copyTextToClipboard("Hello World");