このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

ClipboardItem: ClipboardItem() コンストラクター

Baseline 2025
最近利用可能

February 2025以降、この機能は最新のバージョンの端末およびブラウザーで動作します。古い端末やブラウザーでは動作しないことがあります。

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

ClipboardItem() は新しい ClipboardItem オブジェクトを生成します。これは、クリップボード API で保存・取得するデータを表し、それぞれ clipboard.write()clipboard.read() で操作します。

メモ: read() および write() メソッドは、テキスト文字列や Blob インスタンスで表される任意のデータアイテムの作業に使用できます。ただし、テキストのみを作業する場合は、Clipboard.readText() および Clipboard.writeText() メソッドを使用したほうが便利です。

メモ: 画像の対応形式はブラウザーによって異なります。Clipboard インターフェイスのブラウザーの互換性一覧表を参照してください。

構文

js
new ClipboardItem(data)
new ClipboardItem(data, options)

引数

data

MIME タイプをキー、データを値とする Object です。 データは次のいずれかで表すことができます。

  • Blob
  • 文字列
  • Blob または文字列に解決する Promise
options 省略可

以下のプロパティを持つオブジェクトです。

presentationStyle 省略可

unspecifiedinlineattachment の 3 つの文字列のうちの 1 つ。デフォルト値は unspecified です。

inline は、貼り付けを受け取るアプリに対して、ClipboardItem を貼り付け位置にインラインで挿入すべきであることを示します。attachment は、貼り付けを受け取るアプリに対して、ClipboardItem を添付ファイルとして追加すべきであることを示します。unspecified は、貼り付けを受け取るアプリに対して何の情報も示しません。

以下の例では、fetch() を使って PNG 画像をリクエストし、 Response.blob() メソッドを用いて新しい ClipboardItem を生成しています。このアイテムは、 Clipboard.write() メソッドを用いて、クリップボードに書き込まれます。

メモ: 一度に渡すことができるクリップボードのアイテムは 1 つだけです。

js
async function writeClipImg() {
  try {
    if (ClipboardItem.supports("image/png")) {
      const imgURL = "/my-image.png";
      const data = await fetch(imgURL);
      const blob = await data.blob();
      await navigator.clipboard.write([
        new ClipboardItem({
          [blob.type]: blob,
        }),
      ]);
      console.log("読み込んだ画像をコピーしました。");
    } else {
      console.log("PNG 画像に対応していません");
    }
  } catch (err) {
    console.error(err.name, err.message);
  }
}

仕様書

仕様書
Clipboard API and events
# dom-clipboarditem-clipboarditem

ブラウザーの互換性

関連情報