Clipboard plain text+HTML+GFM demo
Demo for https://github.com/orgs/community/discussions/65235
HTML
<p>
Demo for <a href="https://github.com/orgs/community/discussions/65235">a discussion on GitHub</a>.
</p>
<p>
<button onclick="copy(event);">Press me to copy</button>
</p>
JavaScript
function copy(e) {
e.preventDefault();
const plainText = "plain text: example.net";
const html = 'HTML: <a href="https://example.net">example.net</a>';
const gfm = "GFM: [example.net](https://example.net)";
const handleCopyEvent = event => {
event.stopPropagation();
event.preventDefault();
const clipboardData = event.clipboardData || window.clipboardData;
clipboardData.setData('text/plain', plainText);
clipboardData.setData('text/html', html);
clipboardData.setData('text/x-gfm', gfm);
};
document.addEventListener('copy', handleCopyEvent);
document.execCommand('copy');
document.removeEventListener('copy', handleCopyEvent);
}