JS基于clipBoard.js插件實現(xiàn)剪切、復(fù)制、粘貼
摘要:
最近做了一個項目,其中有這樣一需求:實現(xiàn)一個點擊按鈕復(fù)制鏈接的功能,通過網(wǎng)上找相關(guān)資料,找到了幾個插件,ZeroClipboard是通過flash實現(xiàn)的復(fù)制功能,隨著越來越多的提議廢除flash,于是就想能不能通過js來實現(xiàn)復(fù)制剪切呢?
地址:https://github.com/baixuexiyang/clipBoard.js
方法:
復(fù)制
var copy = new clipBoard(document.getElementById('data'), {
beforeCopy: function() {
},
copy: function() {
return document.getElementById('data').value;
},
afterCopy: function() {
}
});
剪切
var cut = new clipBoard(document.getElementById('data'), {
beforeCut: function() {
},
Cut: function() {
return document.getElementById('data').value;
},
afterCut: function() {
}
});
粘貼
var paste = new clipBoard(document.getElementById('data'), {
beforePaste: function() {
},
paste: function() {
return document.getElementById('data').value;
},
afterPaste: function() {
}
});
補充
1.引入clipboard.min.js文件
2.定義一個button按鈕,注意按鈕的屬性:data-clipboard-action="copy" 表示是復(fù)制行為,data-clipboard-text=‘XXX',XXX表示你要復(fù)制的內(nèi)容
3.書寫js,建立clipboard對象以及復(fù)制后執(zhí)行的方法
演示代碼如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>target-div</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script>
</head>
<body>
<button class="btn" data-clipboard-text="Just because you can doesn't mean you should — clipboard.js">
Copy to clipboard
</button>
<button class="btn" data-clipboard-text="ean you should — clipboard.js">
Copy to clipboard2
</button>
<script>
var clipboard = new ClipboardJS('.btn');
clipboard.on('success', function(e) {
console.info('Action:', e.action);
console.info('Text:', e.text);
console.info('Trigger:', e.trigger);
alert('復(fù)制成功,您復(fù)制的鏈接為'+e.text);
e.clearSelection();
});
clipboard.on('error', function(e) {
console.error('Action:', e.action);
console.error('Trigger:', e.trigger);
alert('復(fù)制失敗')
});
</script>
</body>
</html>
最近在做項目的時候需要實現(xiàn)復(fù)制黏貼的功能,但是js自己提供的各種方法存在兼容性問題,最后決定使用插件來實現(xiàn),找了很多插件,發(fā)現(xiàn)了了一款比較好用的,分享給大家
相關(guān)文章
javascript setTimeout()傳遞函數(shù)參數(shù)(包括傳遞對象參數(shù))
由于需要,我要用到setTimeout()并且在里邊的函數(shù)參數(shù)傳遞一個參數(shù),就像這樣setTimeout("fun(參數(shù))", 1000)。但是以我這種寫法,js會報錯,說‘參數(shù)’未定義。2010-04-04
JavaScript中的模塊化開發(fā)ES6:import與export詳解
JavaScript模塊化通過ES6的import/export實現(xiàn),將代碼拆分為獨立模塊,提升可維護性與復(fù)用性,支持命名導出、默認導出及混合導出,模塊異步加載且只執(zhí)行一次,需嚴格模式和正確路徑,打包工具如Webpack可優(yōu)化加載和代碼分割2025-07-07
JavaScript?的setTimeout與事件循環(huán)機制event-loop
這篇文章主要介紹了JavaScript?的setTimeout與事件循環(huán)機制event-loop,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-07-07
10個基于瀏覽器的JavaScript調(diào)試工具分享
調(diào)試Javascript可能是web開發(fā)中最讓人郁悶的事情,這里是10款我們精選的基于瀏覽器的JS在線調(diào)試工具,感興趣的朋友可以參考下,或許對你有所幫助2013-02-02
你必須知道的Javascript知識點之"字面量和對應(yīng)類型"說明介紹
本篇文章小編為大家介紹,你必須知道的Javascript知識點之"字面量和對應(yīng)類型"。需要的朋友參考下2013-04-04

