Javascriptでクリップボードにテキストコピーする

TL;DR

const text = 'コピーするテキスト';
const textarea = document.createElement('textarea');
textarea.style.position = 'fixed';
textarea.style.opacity = 0;
textarea.value = text;

document.body.appendChild(textarea);

textarea.select();
document.execCommand('Copy');

document.body.removeChild(textarea);

解説

コピーするテキストが入力されたtextareaを生成してDOMに追加 ※ 改行を含まないならtextareaでなくinput[type=text]でも可能

const text = 'コピーするテキスト';
const textarea = document.createElement('textarea');
textarea.style.position = 'fixed';
textarea.style.opacity = 0;
textarea.value = text;

document.body.appendChild(textarea);

textareaを選択させexecCommandを使いコピーさせる

textarea.select();
document.execCommand('Copy');

使い終わったtextareaをDOMから削除

document.body.removeChild(textarea);

参考

developer.mozilla.org