关于js实现文本复制功能:
原理:通过”document.execCommand("Copy"),将选中的文本复制到剪切板。
此方法只对<input>和<textarea>有效
要复制其他文本,想办法将<textarea>中的value变成想复制的内容,
然后通过select()方法选择文本,再调用document.execCommand('copy")。
html部分
<div class="d">
<span class="d1" id="code"></span>
<textarea id="copyTxt" cols="30" rows="10"></textarea>
<sapn class="d2" style="cursor: pointer" onclick="createCode()" id="btn">复制</sapn>
</div>
css部分:
//隐藏文本框
#copyTxt {
position: absolute;
top: 0;
left: 0;
opacity: 0;
z-index: -20;
}
//关于这个文本框框结构的样式,仅参考
.d{
display: flex;
margin: 10px auto;
background-color:#fcfcfc;
width: 370px;
height: 43px;
color:rgb(223, 32, 18);
border-radius: 8px;
}
.d1{
width: 300px;
color: #e22d15;
display: flex;
text-align: center;
align-items: center;
justify-content: center;
}
.d2{
display: flex;
background-color: #e22d15;
color: #fcfcfc;
width: 100px;
justify-content: center;
align-items: center;
border-radius: 8px;
font-size: 16px;
}
js部分:
$(document).ready(function(){
window.onload = function() {
createCode()
}
var code ; //在全局定义验证码
function createCode(){
code = "";
var codeLength = 20;//验证码的长度
var checkCode = document.getElementById("code");
var random = new Array(0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F','G',
'H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y',
'Z');//随机数
for(var i = 0; i < codeLength; i++) {//循环操作
var index = Math.floor(Math.random()*36);//取得随机数的索引(0~35)
code += random[index];//根据索引取得随机数加到code上
}
checkCode.value = code;//把code值赋给验证码
//显示在文本中
document.getElementById("code").innerText= code;
}
btn.onclick = function () {
copyTxt.value = document.getElementById("code").innerText //将文本内容赋值到文本框
console.log(copyTxt.value)
copyTxt.select() //选择文本框中内容
document.execCommand('copy') //调用复制文本方法
// alert('复制成功')
}
})
结果图: