Clipboard

安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

Clipboard インターフェイスはクリップボード API を実装し、ユーザーが許可する場合、システムクリップボードの内容に対する読み取りと書き込みの両方を提供します。クリップボード API は、ウェブアプリケーションに切り取り(カット)、コピー(複写)、貼り付け(ペースト)の機能を実装するために使うことができます。

EventTarget Clipboard

システムクリップボードは、グローバルの Navigator.clipboard プロパティにより公開されています。

Clipboard オブジェクトのメソッド呼び出しは、ユーザーが権限 API を使用して 'clipboard-read''clipboard-write' 権限を取得していないと、成功しません。

メモ: 現実には、ブラウザーがクリップボードへアクセスする場合に必要となることは、非常に多岐に渡ります。詳細はクリップボードの可用性を参照してください。

クリップボード API の全てのメソッドは非同期で動作します。それらはクリップボードにアクセスできたときに解決されるプロミス(Promise オブジェクト)を返します。このプロミスは、クリップボードへのアクセスが拒否された場合には拒否されます。

メソッド

Clipboard は、EventTarget インターフェイスに基づいており、そのメソッドを含みます。

read()

クリップボードから任意のデータ (画像など) を要求し、プロミス(Promise)を返します。データが取得されたとき、このプロミスはクリップボードの内容を保持する ClipboardItem オブジェクトの配列に解決されます。

readText()

システムクリップボードにテキストを要求します。利用可能になるとクリップボードのテキストを含む文字列により解決される Promise を返します。

write()

システムクリップボードに任意のデータを書き込みます。この非同期操作は、返された Promise が解決することにより、その操作が完了したことを示します。

writeText()

システムクリップボードにテキストを書き込み、そのテキストがクリップボードに完全にコピーされたときに解決する Promise を返します。

クリップボードの可用性

非同期のクリップボード API は比較的最近追加されたものであり、ブラウザーへの実装プロセスはまだ完了していません。潜在的なセキュリティ懸念事項や技術的複雑さの両方により、ほとんどのブラウザーはこの API の統合を少しずつ行っています。詳しくは下記のブラウザーの互換性を参照してください。

ブラウザー拡張機能の場合、 WebExtension の clipboard API を使用してシステムクリップボードにアクセスすることができます。

仕様書

Specification
Clipboard API and events
# clipboard-interface

ブラウザーの互換性

BCD tables only load in the browser

関連情報