-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.js
More file actions
27 lines (21 loc) · 786 Bytes
/
main.js
File metadata and controls
27 lines (21 loc) · 786 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
const codeBlocks = Array.from(document.getElementsByTagName('pre'));
codeBlocks.forEach(codeBlock => {
const copyButton = document.createElement("button");
copyButton.innerHTML = "Copy";
copyButton.classList.add("copy-button");
const wrapper = document.createElement("div");
wrapper.classList.add("code-wrapper");
wrapper.appendChild(codeBlock.cloneNode(true));
wrapper.appendChild(copyButton);
codeBlock.parentElement.insertBefore(wrapper, codeBlock);
codeBlock.remove();
copyButton.onclick = async (event) => {
await navigator.clipboard.writeText(codeBlock.innerText);
copyButton.innerHTML = "Copied!";
copyButton.disabled = true;
setTimeout(() => {
copyButton.innerHTML = "Copy";
copyButton.disabled = false;
}, 2000);
}
})