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

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Clipboard
read
formats.unsanitized parameter
Experimental
readText
Supports image/png MIME type
Supports text/html MIME type
Supports text/plain MIME type
write
writeText

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.
See implementation notes.

関連情報