【JavaScript】ボタンクリックでクリップボードにテキストをコピーする
※本ページのリンクにはプロモーションが含まれています。
こんにちは、Ryohei(@ityryohei)です!
本記事では、JavaScriptにてボタンクリックでクリップボードにテキストをコピーする方法をご紹介しています。非推奨となったexecCommandではなくClipboard APIを使った実装方法となります。
JavaScriptでボタンをクリックした際に特定のテキストをコピーする処理を作りたいんだけど、良い方法ないかな?
上記の疑問にお答えします。
では、解説していきます。ボタンクリックでクリップボードにテキストをコピーする
ボタンクリックでクリップボードにテキストをコピーします。ここではクリックのトリガーとなる要素はbutton
要素とし、コピーするテキストはvalue
属性の値とします。
HTML
<button class="js-copy" value="abcdefg">valueの値をコピーする</button>
対象のbutton要素にvalue属性を指定しました。コピーの対象となる値はabcdefg
となります。
続いて、JavaScriptでクリックイベントを取得し、button要素から値を取得します。取得した値はClipboard APIにてクリップボードにコピーします。
JavaScript
document.querySelector('.js-copy').addEventListener('click', (e)=>{ navigator.clipboard.writeText(e.target.value) .then( success => alert(`コピーに成功しました! ${e.target.value}`), error => alert(`コピーに失敗しました!`), ); }, false);
コピーの成功・失敗でもう少し処理を追加したい場合は、アロー関数を展開してご利用ください。
document.querySelector('.js-copy').addEventListener('click', (e)=>{ navigator.clipboard.writeText(e.target.value) .then( (success) => { alert(`コピーに成功しました! ${e.target.value}`); }, (error)=>{ alert(`コピーに失敗しました!`); } ); }, false);
Clipboard APIについては下記で解説していますのであわせてご参照ください!
最後に
JavaScriptでクリップボードを操作する場合はClipboard APIを使う方法が一般的です。少し前まではexecCommand
というメソッドを使用していましたが、現在は非推奨となっていますので、ご注意くださいね!
以上、JavaScriptで、ボタンクリックでクリップボードにテキストをコピーする方法のご紹介でした!
JavaScriptを基礎からしっかりと学びたい方へ
下記の参考書がおすすめです。私がJavaScript入門時に購入した書籍で、基礎から応用まで多様なサンプルを用いて解説されています。ページ数は多いですが、内容が伴っているのですらすら読めます。腰を据えて学びたい方に最良の一冊となっています。