1. 程式人生 > >純js實現複製貼上

純js實現複製貼上

1.先下載clipboard.min.js(搜這個github上面有這個包)
2.在你的頁面引入
3.使用
var clipboard = new Clipboard(‘.moreRecord’, {
text: function(trigger) {
return ‘id’;
}
});
clipboard.on(‘success’, function(e) {
console.log(e);
});
clipboard.on(‘error’, function(e) {
console.log(e);
});
用法:
官方有很多種,但我感覺這種textFunction的方法是其他所有的方式的衍生,所以就說這種 new Clipboard的第一個引數是要繫結的物件 ‘.className’,’#id’,都是幫class為className的物件繫結事件,text:function()設定剪下板上的內容,return 可以是函式的計算值,但是注意不要是全域性變數的值,除非你這個值是固定的,因為這個function是在一個程式碼塊中的,呼叫外部的變數值,呼叫的是引用就會導致複製的永遠是最後一次的值。trigger引數是觸發事件的標籤物件,trigger.getAttribute(“id”)可以獲取到觸發的標籤的id。其他的html屬性都是同理。
碰到的問題:
1.有時候會出現複製成功,但是剪下板上沒有(複製不到一般是因為複製的時候,內容不可見)複製是無法複製到隱藏的東西的,出現這個就是因為是bootstrap的modal預設是隱藏的無法複製,當modal彈出時是複製不到的,你先得modal.hide(),然後就可以複製到了。
2.success呼叫多次,當你註冊多次同一個多次時,同一個頁面的事件是不會出現覆蓋的問題,他每個都會呼叫,剪下板上是最後一次複製的值,解決方案:每次註冊的時候都把物件用陣列變數存起來,下次又要註冊時,先呼叫clipboard.destroy(),把之前的事件釋放掉。