ClipboardItem: ClipboardItem() constructor

Baseline 2024

Newly available

Since June 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

The ClipboardItem() constructor creates a new ClipboardItem object, which represents data to be stored or retrieved via the Clipboard API clipboard.write() and clipboard.read() methods, respectively.

Note: Image format support varies by browser. See the browser compatibility table for the Clipboard interface.

Syntax

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

Parameters

data

An Object with the MIME type as the key and data as the value. The data can be represented as a Blob, a String or a Promise which resolves to either a blob or string.

options Optional

An object with the following properties:

presentationStyle Optional

One of the three strings: unspecified, inline or attachment. The default is unspecified.

Note: You can also work with text via the Clipboard.readText() and Clipboard.writeText() methods of the Clipboard interface.

Examples

The below example requests a PNG image using fetch(), and in turn, the Response.blob() method, to create a new ClipboardItem. This item is then written to the clipboard, using the Clipboard.write() method.

Note: You can only pass in one clipboard item at a time.

js
async function writeClipImg() {
  try {
    if (ClipboardItem.supports("image/png")) {
      const imgURL = "/myimage.png";
      const data = await fetch(imgURL);
      const blob = await data.blob();
      await navigator.clipboard.write([
        new ClipboardItem({
          [blob.type]: blob,
        }),
      ]);
      console.log("Fetched image copied.");
    } else {
      console.log("image png is not suported");
    }
  } catch (err) {
    console.error(err.name, err.message);
  }
}

Specifications

Specification
Clipboard API and events
# dom-clipboarditem-clipboarditem

Browser compatibility

BCD tables only load in the browser

See also