最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用clipboard.js實(shí)現(xiàn)復(fù)制功能的示例代碼

 更新時(shí)間:2017年10月16日 14:32:18   作者:tiancai啊呆  
本篇文章主要介紹了使用clipboard.js實(shí)現(xiàn)復(fù)制功能的示例代碼,詳細(xì)介紹了clipboard.js插件的使用,有興趣的可以了解一下

最近在工作中有一個(gè)需求,就是需要使用一個(gè)按鈕實(shí)現(xiàn)相應(yīng)內(nèi)容的復(fù)制。在網(wǎng)上找了很多解決方案,最后對(duì)比之下選擇了clipboard.js插件來(lái)進(jìn)行實(shí)現(xiàn)。因?yàn)樗灰揽縡lash以及其他框架,而且體積小使用簡(jiǎn)單兼容性也好。下面簡(jiǎn)單介紹一下它的用法。

引入插件,可以下載,也可以使用第三方cdn。

<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js"></script>

對(duì)于HTML來(lái)說(shuō),我們有兩種用法。

第一種

//html部分
<input type="text" id="copyValue" />
<button type="button" data-clipboard-target='#copyValue'>復(fù)制</button>
//js部分
var clipboard = new Clipboard('button');
clipboard.on('success',function(e){
 e.clearSelection();
 alert('復(fù)制成功');
 });
clipboard.on('error',function(e){
 e.clearSelection();
 alert('復(fù)制失敗');
 });

說(shuō)明:如果我們使用按鈕復(fù)制的是另一個(gè)元素的內(nèi)容,則我們可以使用這種方法。此時(shí)將按鈕稱(chēng)為觸發(fā)元素,被復(fù)制的元素稱(chēng)為目標(biāo)元素。此時(shí)data-clipboard-target的值為目標(biāo)元素的選擇器,而data-clipboard-target的屬性被設(shè)置在觸發(fā)元素上。new Clipboard()為實(shí)例化對(duì)象,參數(shù)可以是HTML元素,元素選擇器。有success和error兩個(gè)事件可以供我們監(jiān)聽(tīng),實(shí)現(xiàn)自己的邏輯。因?yàn)閺?fù)制完成后,目標(biāo)元素會(huì)處于選中狀態(tài),所以我們需要e.clearSelection()取消目標(biāo)元素的選中狀態(tài)。
優(yōu)點(diǎn):復(fù)制的內(nèi)容可以是動(dòng)態(tài)的,目標(biāo)元素的值發(fā)生變化,復(fù)制的值也發(fā)生變化。

適用場(chǎng)景:復(fù)制內(nèi)容可變,不固定。

第二種

//html部分
<button type="button" data-clipboard-text='復(fù)制內(nèi)容'>復(fù)制</button>
//js部分
new Clipboard('button');

說(shuō)明:data-clipboard-text的值為你要復(fù)制的內(nèi)容。無(wú)目標(biāo)元素,只有觸發(fā)元素。

缺點(diǎn):復(fù)制的內(nèi)容是靜態(tài)的,不變的,提前設(shè)置好的。

適用場(chǎng)景:復(fù)制內(nèi)容固定不變

對(duì)于以上缺點(diǎn),我們可以?xún)?yōu)化如下,使之復(fù)制的內(nèi)容也是動(dòng)態(tài)的。

//html部分
 <input type="text" id="copyValue" />
 <button type="button" id="copy">復(fù)制</button>
//js
$('#copy').on('click', function () {
 var value = $('#copyValue').val();
 $('#copy').attr('data-clipboard-text', value);
 var clipboard = new Clipboard('#copy');
 clipboard.on('success', function (e) {
 alert('復(fù)制成功');
 });
 clipboard.on('error', function (e) {
 alert('復(fù)制失敗');
 });
})

接著這里曬出最常用的幾種方式,以供不時(shí)之需。

function-target

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>function-target</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
  <!-- 1. Define some markup -->
  <button class="btn">Copy</button>
  <div>hello</div>

  <!-- 2. Include library -->
  <script src="../dist/clipboard.min.js"></script>

  <!-- 3. Instantiate clipboard -->
  <script>
  var clipboard = new ClipboardJS('.btn', {
    target: function() {
      return document.querySelector('div');
    }
  });

  clipboard.on('success', function(e) {
    //console.log(e);
    alert('復(fù)制成功!')
  });

  clipboard.on('error', function(e) {
    console.log(e);
  });
  </script>
</body>
</html>

function-text

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>function-text</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
  <!-- 1. Define some markup -->
  <button class="btn">Copy</button>

  <!-- 2. Include library -->
  <script src="../dist/clipboard.min.js"></script>

  <!-- 3. Instantiate clipboard -->
  <script>
  var clipboard = new ClipboardJS('.btn', {
    text: function() {
      return 'to be or not to be';
    }
  });

  clipboard.on('success', function(e) {
    console.log(e);
  });

  clipboard.on('error', function(e) {
    console.log(e);
  });
  </script>
</body>
</html>

target-div

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>target-div</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
  <!-- 1. Define some markup -->
  <span class="copy_content">hello 123</span>
  <button class="btn" data-clipboard-action="copy" data-clipboard-target=".copy_content">Copy</button>

  <!-- 2. Include library -->
  <script src="../dist/clipboard.min.js"></script>

  <!-- 3. Instantiate clipboard -->
  <script>
  var clipboard = new ClipboardJS('.btn');

  clipboard.on('success', function(e) {
    console.log(e);
  });

  clipboard.on('error', function(e) {
    console.log(e);
  });
  </script>
</body>
</html>

target-input

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>target-input</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
  <!-- 1. Define some markup -->
  <input id="foo" type="text" value="hello">
  <button class="btn" data-clipboard-action="copy" data-clipboard-target="#foo">Copy</button>

  <!-- 2. Include library -->
  <script src="../dist/clipboard.min.js"></script>

  <!-- 3. Instantiate clipboard -->
  <script>
  var clipboard = new ClipboardJS('.btn');

  clipboard.on('success', function(e) {
    console.log(e);
  });

  clipboard.on('error', function(e) {
    console.log(e);
  });
  </script>
</body>
</html>

target-textarea

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>target-textarea</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
  <!-- 1. Define some markup -->
  <textarea id="bar">hello</textarea>
  <button class="btn" data-clipboard-action="cut" data-clipboard-target="#bar">Cut</button>

  <!-- 2. Include library -->
  <script src="../dist/clipboard.min.js"></script>

  <!-- 3. Instantiate clipboard -->
  <script>
  var clipboard = new ClipboardJS('.btn');

  clipboard.on('success', function(e) {
    console.log(e);
  });

  clipboard.on('error', function(e) {
    console.log(e);
  });
  </script>
</body>
</html>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

彭泽县| 郓城县| 康保县| 泉州市| 抚宁县| 宝清县| 太保市| 虞城县| 株洲县| 亚东县| 永修县| 高雄县| 神农架林区| 康保县| 兴文县| 汝州市| 诸城市| 临海市| 嵊泗县| 崇信县| 阿坝县| 泸水县| 夏河县| 宜昌市| 封开县| 建宁县| 积石山| 汉中市| 神木县| 原阳县| 乌拉特前旗| 旬邑县| 平远县| 于田县| 涟源市| 读书| 随州市| 大港区| 英山县| 闽清县| 八宿县|