遍历 pre 标签给每个标签命名 id,然后通过双击事件调用复制方法实现最简单代码复制:
<script> window.onload = function () { let preItems = document.getElementsByTagName('pre'); for (let index in preItems) { let preItem = preItems[index]; preItem.setAttribute("id", index); preItem.setAttribute("ondblclick", 'copycode(' + index + ')'); preItem.setAttribute("title", ' 双击复制 '); } } function copycode(i) { const range = document.createRange(); range.selectNode(document.getElementsByTagName('pre')[i]); const selection = window.getSelection(); if (selection.rangeCount > 0) selection.removeAllRanges(); selection.addRange(range); document.execCommand('copy'); Toast(" 复制成功 ".1000) } function Toast(msg, duration) { duration = isNaN(duration) ? 3000 : duration; var m = document.createElement('div'); m.innerHTML = msg; m.style.cssText = "max-width:60%;min-width: 150px;padding:0 14px;height: 40px;color: rgb(255, 255, 255);line-height: 40px;text-align: center;border-radius: 4px;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(0, 0, 0,.7);font-size: 16px;"; document.body.appendChild(m); setTimeout(function () { var d = 0.5; m.style.webkitTransition = '-webkit-transform ' + d + 's ease-in, opacity ' + d + 's ease-in'; m.style.opacity = '0'; setTimeout(function () { document.body.removeChild(m) }, d * 1000); }, duration); } </script>