7X24小时在线,建站仿站,提供空间域名及数据库,可淘宝交易!安全放心!

JS实现一键复制到剪贴板

专职建站仿站2023-06-06 00:23:40236技术文章
<h1>1、直接传入字符串</h1>    
<button onclick="copy({value: '我有一只小毛驴,我从来都不骑!'})">复制</button>    
<h1>2、传入输入框DOM</h1>    
<button onclick="copy({input: document.getElementById('myInput')})">复制输入框的内容</button>    
<input id="myInput" value="这是一段文本内容,你可以编辑修改后再复制一下试试。" type="text" />    
<button onclick="copy({input: document.getElementById('myTextarea')})">复制输入框的内容</button>    
<textarea id="myTextarea">这是一段文本内容,你可以编辑修改后再复制一下试试。</textarea>    
<script>    
/**    
* 复制内容到剪贴板    
* @param {String} value 要复制的内容    
* @param {Object} input 输入框的DOM节点。如果没有传入的话则新建一个Dom并在复制后销毁。如果传入则将复制该输入框内的文本,value参数失效。    
* @example    
* copy({value: '我有一只小毛驴,我从来都不骑!'})    
* copy({input: document.getElementById('myInput')})    
*/    
function copy(options) {    
let value = options.value || ''    
let input = options.input || null    
if ((!value || typeof value !== 'string') && !input) { // 传参校验    
alert('传参错误')    
return false    
}    
const isNewInput = !input    
if (!input) {    
input = document.createElement('textarea') // 直接构建input    
input.value = value // 设置内容    
document.body.appendChild(input) // 添加临时实例    
}    
input.select() // 选择实例内容    
value = input.value    
const isbool = document.execCommand('Copy') // 执行复制    
if (isbool) {    
alert('复制成功:' + value.substring(0, 20) + (value.length > 20 ? '...' : ''))    
} else {    
alert('复制失败')    
}    
if (isNewInput) document.body.removeChild(input) // 删除临时实例    
}    
</script>


微信号:gaogaojie5
添加微信好友, 获取更多信息
复制微信号
转载声明:本站发布文章及版权归原作者所有,转载本站文章请注明文章来源!

网友评论

复制成功
微信号: gaogaojie5
添加微信好友, 获取更多信息
我知道了
添加微信
微信号: gaogaojie5
添加微信好友, 获取更多信息
一键复制加过了