1、HTML部分
<div class="wrapper">
<h4>Click button below to copy current url to clipboard with hidden input</h4>
<input type="hidden" id="input-url" value="Copied!">
<button class="btn-copy">Copy</button>
</div>
2、CSS部分
.wrapper{
width: 100%;
height: 100%;
text-align: center;
margin-top:10px;
}
.btn-copy{
background-color: #38AFDD;
border: transparent;
border-bottom: 2px solid #0086B7;
border-radius: 2px;
padding: 10px;
min-width: 100px;
color: #fff;
}
.btn-copy:hover, .btn-copy:focus{
background-color: #48A1C1;
border-bottom: 2px solid #38AFDD;
/*transition cross browser*/
transition: all .3s ease-in;
-webkit-transition: all .3s ease-in;
-moz-transition:all .3s ease-in;
-o-transition: all .3s ease-in;
}
3、JS部分
var clipboard = new Clipboard('.btn-copy', {
text: function() {
return document.querySelector('input[type=hidden]').value;
}
});
clipboard.on('success', function(e) {
alert("Copied!");
e.clearSelection();
});
$("#input-url").val(location.href);
//safari
if (navigator.vendor.indexOf("Apple")==0 && /\sSafari\//.test(navigator.userAgent)) {
$('.btn-copy').on('click', function() {
var msg = window.prompt("Copy this link", location.href);
});
}
4、以下是我的实际实例,flask渲染表格
{% for v in page_data.items %}
<tr>
<td>{{ v.name }}</td>
<td>{{ v.website }}</td>
<td>{{ v.username }}</td>
<td>
<input type="hidden" class="form-control" id="pwd{{ v.id }}" value="{{ v.pwd }}"
><br>
<span>************</span>
<span><button id="{{ v.id }}" class="btn btn-copy" value="{{ v.id }}">复制</button></span>
</td>
<td>{{ v.comment }}</td>
<td>
<a href="{{ url_for('admin.account_edit', id=v.id) }}" type="submit"
class="king-btn king-warning">编辑</a>
<a href="{{ url_for('admin.account_del', id=v.id) }}" type="submit"
class="king-btn king-danger">删除</a>
</td>
</tr>
{% endfor %}
<!--<script src="{{ url_for('static', filename='js/jquery.min.js') }}"></script>-->
<script src="{{ url_for('static', filename='js/clipboard.min.js') }}"></script>
<script>
$(document).ready(function () {
$(".btn-copy").click(function () {
var val1 = 'pwd'+$(this).val();
var clipboard = new Clipboard('.btn-copy', {
text: function () {
return document.getElementById(val1).value;
}
});
clipboard.on('success', function (e) {
alert("复制成功!");
e.clearSelection();
});
$("#input-url").val(location.href);
//safari
if (navigator.vendor.indexOf("Apple") == 0 && /\sSafari\//.test(navigator.userAgent)) {
$('.btn-copy').on('click', function () {
var msg = window.prompt("Copy this link", location.href);
});
}
})
})
</script>
修改后的版本
<script>
$(document).ready(function () {
$(".btn-copy").click(function () {
var val1 = 'pwd'+$(this).val();
var val2 = document.getElementById(val1).value;
$.ajax({
url:"/admin/account/pwd/?pwd_str=" + val2,
async: false,// 这里很关键,不能异步操作,需要先把密码解密后返回来才能复制到剪贴板。
dataType: "text",
success: function (data) {
$("#"+val1).text(data);
}
})
var clipboard = new Clipboard('.btn-copy', {
text: function () {
return $("#"+val1).text();
}
});
clipboard.on('success', function (e) {
alert("复制成功!");
e.clearSelection();
});
$("#input-url").val(location.href);
//safari
if (navigator.vendor.indexOf("Apple") == 0 && /\sSafari\//.test(navigator.userAgent)) {
$('.btn-copy').on('click', function () {
var msg = window.prompt("Copy this link", location.href);
});
}
})
})
</script>
有些clipboard.min.js 加载进来不生效,我这边上传一个可以用的
https://cdn.jsdelivr.net/clipboard.js/1.5.10/clipboard.min.js
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。