copyToClipboard - 复制到剪贴板advanced
优质
小牛编辑
138浏览
2023-12-01
将一个字符串复制到剪贴板。 仅作为用户操作的结果(即,在 click
事件侦听器中)。
创建一个新的 <textarea>
元素,用提供的数据填充它,并将其添加到 HTML 文档中。 使用 Selection.getRangeAt()
来存储选择的范围(如果有的话)。 使用 document.execCommand('copy')
复制到剪贴板。 从HTML文档中删除 <textarea>
元素。 最后,使用 Selection().addRange()
来恢复原始选择范围(如果有的话)。
const copyToClipboard = str => { const el = document.createElement('textarea'); el.value = str; el.setAttribute('readonly', ''); el.style.position = 'absolute'; el.style.left = '-9999px'; document.body.appendChild(el); const selected = document.getSelection().rangeCount > 0 ? document.getSelection().getRangeAt(0) : false; el.select(); document.execCommand('copy'); document.body.removeChild(el); if (selected) { document.getSelection().removeAllRanges(); document.getSelection().addRange(selected); } };
copyToClipboard('Lorem ipsum'); // 'Lorem ipsum' copied to clipboard.