JS实现复制指定文本功能
全栈开发日记
共 1578字,需浏览 4分钟
·
2021-06-17 15:50
功能描述:
点击按钮,将指定文本复制到剪贴板。
示例如下:
点击分享按钮,将当前条目链接复制到剪贴板。
功能实现:
HTML部分:
<input type="text" id="copyVal" value="被复制内容" />
JS部分:
let input = document.getElementById('httpUrl');
input.select();
if(document.execCommand('copy')){
链接复制成功执行
}else{
链接复制失败执行
}
功能升级:
文本框不呈现给用户,点击对应条目的复制按钮,复制对应文本内容。
文本框内容不呈现给用户,有如下几种方式:
1、display
属性值为none
;
2、opacity
属性值为0
;
3、不渲染该节点在DOM树中;
4、内容存储在JS中;
但是,要使document.execCommand(‘copy’)
生效,要满足如下几点:
1、input框不能有disabled属性
2、width和height不能为0
3、input
框不能有hidden
、display:none
属性
简单来说,输入框要在正常的编辑状态下。
解决方式:
将input框设置属性opacity:0
,将输入框的透明度设置为完全透明。设置属性position:absolute
,设置输入框绝对定位,不占用文档位置。
代码示例:
HTML部分:
<input type="text" id="copyUrl" v-model="copyUrl"/>
CSS部分:
#copyUrl{
position: absolute;
top: 0;
opacity: 0;
}
JS部分:
let input = document.getElementById('copyUrl');
input.select();
if(document.execCommand('copy')){
document.execCommand('copy');
this.$message({
message: '链接已经复制成功!',
type: 'success'
});
document.execCommand('copy');
}else{
this.$message({
message: '链接复制失败!',
type: 'error'
});
}
点击关注公众号,查看更多内容:
评论