B-Teck!

お仕事からゲームまで幅広く

【JavaScript】クリップボードに文字列をコピーする

document.execCommand("copy") が選択した要素の文字列のみしかコピー出来ないので、
一時的に要素を作って、選択してコピーする。

const copyToClipboard = s => {
    const d = document;
    // copy用の一時要素を作成し、文字を入れる
    const t = d.createElement('pre');
    t.textContent = s;
    // 表示されていないとコピー出来ないのでbodyに追加する
    d.body.appendChild(t);
    // 追加した要素を選択しコピーする
    // コピー後に追加した要素を消すので画面上はほぼ影響がない
    d.getSelection().selectAllChildren(t);
    d.execCommand('copy');
    d.body.removeChild(t);
}

document.getElementById('button').onclick = () => copyToClipboard(Date());

↓ボタンを押すと現在時刻がクリップボードにコピーされる。

See the Pen ERLxzm by baetdjam (@beatdjam) on CodePen.