直接上代码:
// 获取dom
const table = document.querySelector('#copyBox')
// 创建Rang对象
const range = document.createRange();
// 选中表格
range.selectNode(table);
// 清空所有已存在的选区,确保接下来的操作不会受到先前选区的影响。
window.getSelection().removeAllRanges();
// 将用户在页面上的选区变为了我们指定的表格范围。
window.getSelection().addRange(range);
// 复制
document.execCommand("copy");
// 清除选区
window.getSelection().removeAllRanges();
this.$message.success("复制成功");
总结:
- 创建一个涵盖整个表格的
Range
对象。 - 清除当前页面选区。(确保接下来的操作不会受到先前选区的影响。)
- 设置新的选区为整个表格。
- 执行复制命令,将表格内容复制到剪贴板。
- 清除选区,恢复页面状态。
- 显示“复制成功”的提示消息给用户。