この記事について
この記事は、生成AIを活用した自動生成フローで作成しています。MDNのClipboard API資料を確認し、ボタンを押したときだけ文字列をclipboardへ書き込む最小デモにしました。ブラウザ実機での再確認は行っていません。検証ステータス:📘 API仕様確認済み・ブラウザ実機未確認
情報確認日:2026年10月3日。入力文字列を外部サーバーへ送信・保存しません。
Webページの「コピー」ボタンは、JavaScriptからclipboardへ文字列を書き込めます。今回は自動コピーではなく、読者がボタンを押したときだけ navigator.clipboard.writeText() を呼びます。
今日試すもの
入力欄へ文字を入れて「コピー」を押し、画面に SUCCESS または FAILED が出るところまでを観察します。
まずライブデモ
文字列はこのページ内で扱い、外部サーバーへ送信・保存しません。ブラウザがClipboard APIを許可しない場合も、画面にFAILEDを表示します。
最小コード
button.addEventListener("click", async () => {
try {
await navigator.clipboard.writeText(input.value);
result.textContent = "SUCCESS";
} catch (error) {
result.textContent = "FAILED: " + error.name;
}
});
flowchart LR
A["ユーザーがクリック"] --> B["writeText"]
B --> C{"利用可能?"}
C -->|Yes| D["Clipboardへ書込"]
C -->|No/拒否| E["FAILEDを表示"]
なぜクリック後に呼ぶのか
Clipboardのようにユーザーの環境へ作用するWeb APIは、ブラウザのセキュリティ条件や権限制御の影響を受けます。ページを開いただけで勝手にコピーする設計ではなく、明示的なユーザー操作を入口にします。
1か所変える
入力文字列を短い文字から日本語や改行を含む文字へ変え、コピー後にテキストエディタへ貼り付けて結果を確認します。
失敗も画面に出す
APIが使えない環境や許可されない状況を想定し、成功だけでなく例外名も画面へ出します。consoleを開けない初心者でも状態を確認できます。
仕事で使うなら
管理画面のID、コマンド、テンプレート文などをワンクリックでコピーするUIに応用できます。秘密情報をclipboardへ置く設計では、端末共有やclipboard履歴も含めて扱いを検討します。
ここを見ると仕組みが分かる
この実験で面白いのは、コピーできた文字そのものより「WebページがOS側のclipboardへ触れる境界」です。Clipboard APIはsecure contextなどブラウザ側の条件を受けるため、同じコードでも配信方法や権限状態によって成功・失敗が変わり得ます。
そのため実務UIでは、コピー処理を隠れて実行するより、ユーザー操作を入口にし、成功/失敗を画面へ返す設計の方がトラブルを切り分けやすくなります。共有PCではclipboard履歴に機密値が残る可能性もあるため、「便利だから何でもコピー可能にする」設計にはしません。

