How It Works
Refer to the Clipboard API documentation for details.
Programmatic
<button class="btn preset-filled" data-copy-button-default>Copy to Clipboard</button>
<script>
const data = 'Hello World!';
const copyButton = document.querySelector<HTMLButtonElement>('[data-copy-button-default]');
copyButton?.addEventListener('click', async () => {
await navigator.clipboard.writeText(data);
alert(`Copied "${data}" to clipboard!`);
});
</script>
Using Inputs
<div class="flex items-center gap-4">
<input type="text" class="input" value="Hello Skeleton" data-copy-input />
<button class="btn preset-filled" data-copy-button-input>Copy</button>
</div>
<script>
const copyButton = document.querySelector<HTMLButtonElement>('[data-copy-button-input]');
const inputElement = document.querySelector<HTMLInputElement>('[data-copy-input]');
copyButton?.addEventListener('click', async () => {
const data = inputElement?.value || '';
await navigator.clipboard.writeText(data);
alert(`Copied "${data}" to clipboard!`);
});
</script>