背景
今天遇到这样一个需求:点击按钮,一键复制表格中的内容,能直接粘贴到Excel中。开始查找到了使用clipboardData
方法实现复制,可是发现在Chrome浏览器下无效。
解决
最终使用如下代码实现该功能:
function copyTable() {
const table = document.getElementById('table')
const range = document.createRange()
// 设定range包含的节点对象
range.selectNode(table)
// 窗口的selection对象,表示用户选择的文本
const selection = window.getSelection()
// 将已经包含的已选择的对象清除掉
if (selection.rangeCount > 0) selection.removeAllRanges()
// 将要复制的区域的range对象添加到selection对象中
selection.addRange(range)
// 执行copy命令,copy用户选择的文本
document.execCommand('copy')
}