copyToClipboard 関数
次の copyToClipboard
関数を使うと、引数で指定したテキストを OS のクリップボードにコピーすることができます。
function copyToClipboard(text){
// テキストコピー用の一時要素を作成
const pre = document.createElement('pre');
// テキストを選択可能にしてテキストセット
pre.style.webkitUserSelect = 'auto';
pre.style.userSelect = 'auto';
pre.textContent = text;
// 要素を追加、選択してクリップボードにコピー
document.body.appendChild(pre);
document.getSelection().selectAllChildren(pre);
const result = document.execCommand('copy');
// 要素を削除
document.body.removeChild(pre);
return result;
}
JavaScript からクリップボードにテキストをコピーするときは、任意の HTML 要素のテキストを選択して、document.execCommand('copy')
を実行するという流れになります。
そのため、上記の関数では、テキスト選択用の一時的な pre
要素を作成しています。
使用例
例えば次のようにすると、ボタンを押したときにクリップボードにテキストをコピーできます。
← 実際に動作します
<button id="copy">クリップボードにコピー</button>
<script>
window.addEventListener('DOMContentLoaded', () => {
document.getElementById('copy').addEventListener('click', () => {
copyToClipboard('こんにちは!\nテキストがコピーされたよ!');
});
});
</script>
関連記事
- TypeScriptの型: 環境変数 (process.env) 用の型情報を定義する
- JavaScript で現在のページの URL の構成要素を取得する (window.location)
- TypeScriptの型: 既存の JavaScript ライブラリに型情報を追加する(.d.ts ファイル)
- TypeScriptのモジュールのインポートには import を使う
- TypeScriptでモジュールを作成する/インポートする (export, import)
- TypeScriptで名前空間を定義する (namespace)
- TypeScriptの環境: tsc-watch で ts ファイルの変更監視&アプリの再起動を自動化する