<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js">script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js">script>
<button class="button" data-clipboard-text="待复制的内容" type="button">复制button>
<script type="text/javascript">
//实例化clipboard
var clipboard = new ClipboardJS('.button');
//提示复制成功
clipboard.on("success",function(e){
// 复制成功
showMessage('已成功复制','success',2000)
e.clearSelection();
});
//提示复制失败
clipboard.on("error",function(e){
//复制失败;
showMessage('复制失败','error',2000)
console.log( e.action )
});
script>
复制功能实现了,但是复制成功或失败的提示咋不出现呢?
上面的代码中,clipboard.on("success",function(e){ ... }) 和 clipboard.on("error",function(e){ ... }) 中分别调用了 showMessage('已成功复制','success',2000) 和 showMessage('复制失败','error',2000),如果没有定义showMessage函数,或者函数定义了但是没有被调用,那么就不会出现信息提示。
推荐调用 alert(),在函数中调用alert('复制成功')和alert('复制失败')来提示复制成功或失败
或者使用其他更为丰富的提示插件或者自己写一个用来提示。
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js"></script>
<button class="button" data-clipboard-text="待复制的内容" type="button">复制</button>
<script type="text/javascript">
//实例化clipboard
var clipboard = new ClipboardJS('.button');
//提示复制成功
clipboard.on("success",function(e){
// 复制成功
showMessage('已成功复制','success',2000)
e.clearSelection();
});
//提示复制失败
clipboard.on("error",function(e){
//复制失败;
showMessage('复制失败','error',2000)
console.log( e.action )
});
function showMessage(message,type,time) {
let str = ''
switch (type) {
case 'success':
str = '<div class="success-message" style="width: 100%;height: 50px;background-color: #030026;font-size:17px;text-align: center;color:#fff;position: fixed;left: 0%;bottom: 0%;line-height: 50px;z-index: 9999">\n' +
' <span class="mes-text">'+message+'</span></div>'
break;
case 'error':
str = '<div class="error-message" style="width: 100%;height: 50px;background-color: #030026;font-size:17px;text-align: center;color: #fff;position: fixed;left: 0%;bottom: 0%;line-height: 50px;z-index: 9999">\n' +
' <span class="mes-text">'+message+'</span></div>'
}
$('body').append(str)
setTimeout(function () {
$('.'+type+'-message').remove()
},time)
}
</script>
能不能在按钮右侧出现,最好和按钮等高啊?