Co-authored-by: zty624 <164896039+zty624@users.noreply.github.com> Co-authored-by: yhzx233 <16619108+yhzx233@users.noreply.github.com> Co-authored-by: Monalissaa <50078799+Monalissaa@users.noreply.github.com>
24 lines
812 B
JavaScript
24 lines
812 B
JavaScript
let statusTimer;
|
|
|
|
document.querySelectorAll('[data-copy]').forEach(button => {
|
|
button.addEventListener('click', async () => {
|
|
const source = document.getElementById(button.dataset.copy);
|
|
const status = document.getElementById('copy-status');
|
|
let message;
|
|
try {
|
|
await navigator.clipboard.writeText(source.textContent);
|
|
message = 'Copied to clipboard.';
|
|
} catch {
|
|
const range = document.createRange();
|
|
range.selectNodeContents(source);
|
|
const selection = window.getSelection();
|
|
selection.removeAllRanges();
|
|
selection.addRange(range);
|
|
message = 'Text selected. Press Ctrl+C or ⌘C to copy.';
|
|
}
|
|
status.textContent = message;
|
|
clearTimeout(statusTimer);
|
|
statusTimer = setTimeout(() => { status.textContent = ''; }, 3500);
|
|
});
|
|
});
|