欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

最近在工作中有一個需求,就是需要使用一個按鈕實現(xiàn)相應內(nèi)容的復制。在網(wǎng)上找了很多解決方案,最后對比之下選擇了clipboard.js插件來進行實現(xiàn)。因為它不依靠flash以及其他框架,而且體積小使用簡單兼容性也好。下面簡單介紹一下它的用法。

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

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

對于HTML來說,我們有兩種用法。

第一種

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

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

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

第二種

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

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

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

適用場景:復制內(nèi)容固定不變

對于以上缺點,我們可以優(yōu)化如下,使之復制的內(nèi)容也是動態(tài)的。

//html部分
 <input type="text" id="copyValue" />
 <button type="button" id="copy">復制</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('復制成功');
 });
 clipboard.on('error', function (e) {
 alert('復制失敗');
 });
})

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

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('復制成功!')
  });

  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>

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • js實現(xiàn)不重復導入的方法

    js實現(xiàn)不重復導入的方法

    這篇文章主要介紹了js實現(xiàn)不重復導入的方法,實例分析了JavaScript基于文件與字符串判斷操作實現(xiàn)JS文件不重復導入的相關(guān)技巧,需要的朋友可以參考下
    2016-03-03
  • JavaScript中字符串相關(guān)的方法使用總結(jié)

    JavaScript中字符串相關(guān)的方法使用總結(jié)

    這篇文章主要為大家詳細介紹了JavaScript中字符串相關(guān)的方法使用,文中的示例代碼講解詳細,具有一定的參考價值,需要的小伙伴可以學習一下
    2023-08-08
  • JS 文字符串轉(zhuǎn)換unicode編碼函數(shù)

    JS 文字符串轉(zhuǎn)換unicode編碼函數(shù)

    AJAX傳遞中文字符串時必須把中文字符串編碼成unicode,一般會用到JS的自帶函數(shù)escape().不過找到了更好的函數(shù)來確決中文字符轉(zhuǎn)換成unicode編碼的函數(shù)
    2009-05-05
  • 原生js實現(xiàn)購物車功能

    原生js實現(xiàn)購物車功能

    這篇文章主要為大家詳細介紹了原生js實現(xiàn)購物車功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • 三種方式獲取XMLHttpRequest對象

    三種方式獲取XMLHttpRequest對象

    這篇文章主要介紹了獲取XMLHttpRequest對象的三種方式,需要的朋友可以參考下
    2014-04-04
  • js切換光標示例代碼

    js切換光標示例代碼

    切換光標的方法有很多,在本文為大家詳細介紹下在js中時如何實現(xiàn)的,感興趣的朋友不要錯過
    2013-10-10
  • 如何使用TypeScript實現(xiàn)一個瀏覽器事件的集中管理

    如何使用TypeScript實現(xiàn)一個瀏覽器事件的集中管理

    這篇文章主要介紹了使用TypeScript實現(xiàn)一個瀏覽器事件的集中管理,瀏覽器事件模型的主要優(yōu)點是它可以使開發(fā)人員更加靈活地處理用戶交互,并且可以通過事件委托等技術(shù)來提高性能,本文給大家講解的非常詳細,需要的朋友可以參考下
    2023-06-06
  • JavaScript中連接操作Oracle數(shù)據(jù)庫實例

    JavaScript中連接操作Oracle數(shù)據(jù)庫實例

    這篇文章主要介紹了JavaScript中連接操作Oracle數(shù)據(jù)庫實例,本文講解了運行環(huán)境、代碼實例、運行結(jié)果等一系列完整步驟,需要的朋友可以參考下
    2015-04-04
  • JavaScript中的this原理及6種常見使用場景詳解

    JavaScript中的this原理及6種常見使用場景詳解

    這篇文章主要介紹了JavaScript中的this原理及6種常見使用場景詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • JS面試必備之如何實現(xiàn)一個精確的倒計時

    JS面試必備之如何實現(xiàn)一個精確的倒計時

    又到了金三銀四的季節(jié)了,面試的各位同學要開始準備起來了,今天主要分享一個在面試中經(jīng)常被提到的一個面試題:倒計時,希望對大家有所幫助
    2024-03-03

最新評論