思路:
- 选中想要复制的元素对象
- 创建range对象,把选中的元素对象放进去
- 讲range对象添加到selection对象,执行copy命令
代码:
//按钮绑定事件 <Button onClick={copyOrderNumber} className='order-num-operate'> Copy </Button> const copyOrderNumber = () => { //选中节点 const copyEle = document.querySelector('.order-number-text') //创建Range对象(某个区域内连续的内容) const range = document.createRange() //清除页面中已有的selection window.getSelection().removeAllRanges() //选中需要复制的节点 range.selectNode(copyEle) //执行选中元素 window.getSelection().addRange(range) //执行 copy 操作 const copyStatus = document.execCommand('Copy') // 对成功与否定进行提示 if (copyStatus) { Toast.success('Copy Success', 1) } else { Toast.fail('Copy Failed', 1) } // 移除选中的元素 window.getSelection().removeAllRanges() }