--- title: Clipboard slug: Web/API/Clipboard tags: - API - Clip - Clipboard - Clipboard API - Cut - Editing - Interface - Pasteboard - Reference - copy - paste translation_of: Web/API/Clipboard ---
{{APIRef("Clipboard API")}}
クリップボードとは、短期間のデータ格納や転送のために使われるバッファであり、文書やアプリケーションの間で使われます。
これは、通常名前のない一時的なバッファとして実装され、貼り付けバッファと呼ばれることもあり、その環境で定義されたアプリケーションプログラムインターフェイスを使うことで、ほとんど全てのプログラムがアクセスすることができます。
多くのアプリケーションでは、ショートカットキーやメニューなど、このインターフェイスに結び付けられたユーザーからの入力を使うことにより、クリップボード機能にアクセスします。
Clipboard
インターフェイスは Clipboard API を実装します。この API は、ユーザーが許可する場合、システムクリップボードの内容に対する読み取りと書き込みの両方を提供します。 Clipboard API は、ウェブアプリケーションにカット (切り取り)、コピー (複写)、ペースト (貼り付け) の機能を実装するために使うことができます。
システムクリップボードは、グローバルの {{domxref("Navigator.clipboard")}} プロパティにより公開されています。
Clipboard
オブジェクトのメソッド呼び出しは、ユーザーが Permissions API と "clipboard-read"
や "clipboard-write"
パーミッションを適切に使って必要なパーミッションを与えていない場合、成功しません。
注意: 現実には、ブラウザーがクリップボードへアクセスする場合に必要となることは、非常に多岐に渡ります。詳細は {{anch("Clipboard_availability", "クリップボードの可用性")}} を参照してください。
Clipboard API の全てのメソッドは非同期で動作します。つまり、それらはクリップボードにアクセスできたときに解決される {{jsxref("Promise")}} オブジェクトを返します。この Promise は、クリップボードへのアクセスが拒絶された場合には拒否されます。
Clipboard
は、{{domxref("EventTarget")}} インターフェイスに基づいており、そのメソッドを含みます。
Promise
を返します。Promise
が解決することにより、その操作が完了したことを示します。Promise
を返します。非同期の Clipboard API は比較的最近追加されたものであり、ブラウザーへの実装プロセスはまだ完了していません。潜在的なセキュリティ懸念事項や技術的複雑さの両方により、ほとんどのブラウザーはこの API の統合を少しずつ行っています。
例えば、Firefox はまだ "clipboard-read"
と "clipboard-write"
パーミッションをサポートしていないため、これとは異なる方法でクリップボードの内容にアクセスし変更するメソッドへのアクセスを制限します。
WebExtension の場合、clipboardRead や clipboardWrite パーミッションを要求することで clipboard.readText() や clipboard.writeText() を使うことができます。HTTPサイトに適用されたコンテンツスクリプトは、Clipboard オブジェクトにアクセスすることはできません。Extensions in Firefox 63 を参照してください。
また、{{domxref("Clipboard.read", "read()")}} と {{domxref("Clipboard.write", "write()")}} はデフォルトで無効にされており、これらを有効にするには設定を変更する必要があります。これらを使う前にブラウザー実装状況の表を確認してください。
仕様書 | 状態 | 備考 |
---|---|---|
{{SpecName('Clipboard API','#clipboard-interface','Clipboard')}} | {{Spec2('Clipboard API')}} | 初回定義 |
{{Compat("api.Clipboard")}}