它一般可以使用第三方库 clipboard.js[1] 来实现,源码很简单,可以读一读
主要有两个要点
选中主要利用了 Selection API[2]
选中的代码如下
const selection = window.getSelection();
const range = document.createRange();
range.selectNodeContents(element);
selection.removeAllRanges();
selection.addRange(range);
selectedText = selection.toString();
取消选中的代码如下
window.getSelection().removeAllRanges();
它有现成的第三方库可以使用: select.js[3]
复制就比较简单了,execCommand
document.exec('copy')
[1] clipboard.js: https://github.com/zenorocha/clipboard.js
[2] Selection API: https://developer.mozilla.org/en-US/docs/Web/API/Selection
[3] select.js: https://github.com/zenorocha/select