winney

It is never too old to learn.

0%
winney

Clipboard的使用

如果存在clipboard,先将它销毁

1
2
3
if(clipboard) {
clipboard.destroy();
}
Clipboard官网使用教程
复制成功和复制失败的提示
1
2
3
4
5
6
7
8
9
10
11
12
var u = navigator.userAgent;
clipboard.on('success', function(e) {
layer.msg('复制成功', {time: 1000});
e.clearSelection();
});
clipboard.on('error', function(e) {
if(u.indexOf('UCBrowser') > -1){
layer.msg('您的浏览器不支持,请长按内容手动复制!', {time: 1000});
} else {
layer.msg('复制失败', {time: 1000});
}
});
如果提示信息弹两次
1
2
3
4
5
自己写一个copySuccessTip提示信息
$(".copySuccessTip").addClass("mymove");
setTimeout(function() {
$(".copySuccessTip").removeClass("mymove");
},1000);

解决clipboard复制弹多次提示的问题

1、使用destroy(在单页面里面,回来页面,如果存在这个对象,就删除。)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 如果存在clipboard,先将它销毁
if(clipboard){
clipboard.destroy();
}

var clipboard =new ClipboardJS('.copyBtn', {
text: function(trigger){
var txt = $(trigger).data( "clipboard-text");
return txt; // 返回需要复制的内容
}
});

var u = navigator.userAgent;

clipboard.on('success', function(e){
layer.msg('复制成功');
e.clearselection();
});

clipboard.on('error', function(e) {
if(u.indexOf("UCBrowser") >-1){
layer.msg('您的浏览器不支持,请长按内容手动复制!');
}else {
layer.msg('复制失败');
}
});

2、换成setTimeout,不用layer.msg(copySuccessTip的样式模拟layer.msg的样式即可)

1
2
3
4
5
6
7
clipboard.on('success', function(e){
$('.copySuccessTip').show();

setTimeout(function(){
$('.copySuccessTip').hide();
}, 1000);
});