1. 程式人生 > 程式設計 >js實現複製貼上的兩種方法

js實現複製貼上的兩種方法

本文例項為大家分享了js實現複製貼上的具體程式碼,供大家參考,具體內容如下

一、前沿

介面需要複製功能,所以就寫了一個作為簡單記錄

二、方法、推薦第二種。

1、第一種方法

1)、通過 document.execCommand('copy')
2)、前端程式碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>constructor-nodelist</title>
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <link rel="stylesheet" href="https://cdn.bootcss.com/sweetalert/1.1.3/sweetalert.min.css"/>

</head>
<body>
<button class="copy_file" onclick="copyText('copy_file')">點我複製</button>
<a id="copy_file" href="複製內容" ></a>
<script type="text/javascript" src="https://cdn.bootcss.com/sweetalert/1.1.3/sweetalert.min.js"></script>
<script>
function copyText(str_file) {
 const btn = document.querySelector('.'+str_file);
 var copy_val = document.getElementById(str_file)
 var copy_file = copy_val.getAttribute("href");
 btn.addEventListener('click',() => {
  const input = document.createElement('input');
  document.body.appendChild(input);
  input.setAttribute('value',copy_file);
  input.select();
  if (document.execCommand('copy')) {
   document.execCommand('copy');
   swal("複製成功!","success");
  }
  document.body.removeChild(input);
 })
}

</script>
</body>

3)、總結:主要是通過 class和id 來複制 a標籤中的 href,把複製好的內容放到 生成的input標籤中,然後複製結束把 input標籤給remove,這個你複製內容自行發揮,和修改 js。
4)、問題:第一次點選不生效,需要點選兩次,暫時不解決

2、第二種方法

1)、通過 ClipboardJS 來實現 內容的複製,推薦這個
2)、git地址:clipboardjs
3)、前端程式碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <!-- 請自行去git專案下載 js-->
 <script src="./clipboard.min.js"></script>
 <link rel="stylesheet" href="https://cdn.bootcss.com/sweetalert/1.1.3/sweetalert.min.css"/>
 <script type="text/javascript" src="https://cdn.bootcss.com/sweetalert/1.1.3/sweetalert.min.js"></script>
</head>
<body>

<button id="btn" data-clipboard-text="str_555" onclick="copyText()">
 <span>Copy</span>
</button>
</body>
</html>

<script>
function copyText() {
 var btn = document.getElementById('btn');
 console.log(btn);
  var clipboard = new ClipboardJS(btn);
<!--  var clipboard = new ClipboardJS(btn,{-->
<!--   container: document.getElementById('btn')-->
<!--  });--> 如果你的專案是 bootstrap框架,請使用這個
  clipboard.on('success',function(e) {
   console.log(e);
   swal("複製成功!","success");
   clipboard.destroy();
  });

  clipboard.on('error',function(e) {
   console.log(e);
   swal("複製失敗","error");
   clipboard.destroy();
  });
}
</script>

3)、總結:請一定要仔細閱讀 文件。這個專案還是非常強大的,強烈推薦這個。

4)、問題:也是遇到了 第一次複製不生效的問題,暫時不解決了。

三、總結

1、都遇到了 第一次複製不生效的問題,後續解決把,都採用了 sweetalert 。
2、個人都只在 谷歌和火狐瀏覽器實驗了,都可以用,如果其他瀏覽器版本不能用,請自行查閱其他文章,歡迎溝通、指正。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。