リンクをコピーする機能の実装はclipboard.jsが簡単

こんにちは。Gaji-Labo 横田です。前回、a 要素のみで URL リンクを SNS シェアする実装を紹介しました。

このように URLリンクを SNS シェアする時によく付属で付いている、リンクをコピーする機能を clipboard.js を使って実装してみたので紹介します。

URLリンクをコピーできる、こういうボタンです

インストールと設定

パッケージ管理したいので npm 経由でインストールします。

npm install clipboard --save

npm 内から読み込ませたい時は import 文で指定します。

import ClipboardJS from 'clipboard';

直接 HTML に読み込ませる時はファイルをダウンロードして読み込ませます。CDNも用意されていますのでお好きな方を。

<script src="dist/clipboard.min.js"></script>

使用方法

前提として、コピーしたい URL は動的に取得できるものとします。
HTML では data-clipboard-text 属性にコピーしたいURLの値を入れ、id を指定しておきます。

<div id="copy-link" data-clipboard-text="{シェアするURL}">
    リンクをコピー
</div>

JavaScript では HTMLで指定した id を new ClipboardJS で呼び出します。
ただし、このままではコピーできたかどうかユーザーに分かりにくいので、 success というイベントを追加してアラートを出してみます。

let copyLink = new ClipboardJS('#copy-link');
copyLink.on('success', function () {
    alert('URLをコピーしました。');
});

これで URL コピーが実装できました!簡単ですね。

終わりに

軽量で各ブラウザサポートもされているので導入しやすいです。
お読みいただきありがとうございました。


投稿者 Yokota Tomoko

運用やアクセシビリティに配慮したHTML/CSSの設計やコンポーネント作成、スタイルガイドの構築、コードレビュー、組み込み、要件の整理、社内進行管理、顧客とのコミュニケーションまで、ジョインしたチームを前に進めるためにあれこれ担当しています。子育てと仕事のバランスを楽しめるよう、日々模索しています。