至2023年最好用的兼容多浏览器的原生js复制函数copyText
作者:前端白雪
因为后台需要增加一些复制一些内容非表单中内容,那么下面这个函数就非常的好用了,其实也是利用了表单的数据权限比较容易突破,下面是具体的实现函数,大家可以拿走
JS复制文本到剪切板 copyText
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
</head>
<body>
<span class="orange" id="shareUrl" data-url="www.baidu.com">www.baidu.com</span>
<script>
// 复制
function copyText(text) {
var textArea = document.createElement("textarea");
// textArea.style['display']='none'
textArea.style['position'] = 'absolute'
textArea.style['top'] = '0'
textArea.style['left'] = '0'
textArea.value = text;
document.body.appendChild(textArea);
textArea.focus();
textArea.select();
try {
var successful = document.execCommand('copy');
var msg = successful ? 'successful' : 'unsuccessful';
console.log(msg)
} catch (err) {
console.error('复制失败', err);
}
document.body.removeChild(textArea);
if (successful) {
return true
}
};
$(function() {
var shareUrl = $("#shareUrl").data("url");
$("#shareUrl").click(function() {
var shareUrl = $("#shareUrl").data("url");
if (copyText(shareUrl)) {
alert("复制成功");
}
})
})
</script>
</body>
</html>脚本之家小编删减后的代码,减少了判断,其实上面的代码是非常好的
function copyText (text) {
//生成一个textarea对象
var textArea = document.createElement('textarea');
//设置属性
textArea.style.position = 'fixed';
textArea.style.top = 0;
textArea.style.left = 0;
textArea.style.width = '2em';
textArea.style.height = '2em';
textArea.style.padding = 0;
textArea.style.border = 'none';
textArea.style.outline = 'none';
textArea.style.boxShadow = 'none';
textArea.style.background = 'transparent';
textArea.value = text;
//添加到页面body
document.body.appendChild(textArea);
textArea.select();
//执行
var msg = document.execCommand('copy') ? '成功' : '失败';
Popup('复制内容' + msg);
//移除对象
document.body.removeChild(textArea);
}
function Popup(message){
var span=document.createElement('span')
span.innerHTML=message || 'default'
span.className='popupStyle'
span.style.display='block'
document.body.appendChild(span)
setTimeout(()=>{
span.remove()
},1000)
}对了不要忘了css样式
.popupStyle{
width:180px;
height:50px;
background-color: rgb(85,85,85);
/* display:none; */
color:#fff;
text-align:center;
line-height:50px;
border-radius:5px;
padding:0;
position:fixed;
z-index:1;
top:30%;
left:50%;
transform:translateX(-50%);
} 对于之前的一些代码,可以当个学习参考,原生js实现。
您可能感兴趣的文章:
- JavaScript实现一键复制文本功能的示例代码
- Web js实现复制文本到粘贴板
- 使用js实现复制功能
- 使用 JS 复制页面内容的三种方案
- JavaScript实现一键复制内容剪贴板
- js复制文本到粘贴板(Clipboard.writeText())
- JS实现一键复制
- Vue中使用highlight.js实现代码高亮显示以及点击复制
- js实现复制粘贴的两种方法
- JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)
- JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
- js实现点击复制当前文本到剪贴板功能(兼容所有浏览器)
- 简单实现兼容各大浏览器的js复制内容到剪切板
- JavaScript 实现完美兼容多浏览器的复制功能代码
- 兼容主流浏览器的JS复制内容到剪贴板
- js实现的复制兼容chrome和IE
- 兼容所有浏览器的js复制插件Zero使用介绍
- 用js将内容复制到剪贴板兼容浏览器
- js复制网页内容并兼容各主流浏览器的代码
- JS复制内容到剪切板的实例代码(兼容IE与火狐)
- JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
- 多浏览器兼容性比较好的复制到剪贴板的js代码
- GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
- 兼容IE与Firefox的js 复制代码
- JavaScript 复制功能代码 兼容多浏览器
