ClipboardItem: supports() 靜態方法

基準線 2025
新推出

自 ⁨2025 年 3 月⁩ 起,此功能可在最新的裝置和瀏覽器版本上使用。此功能可能在舊裝置或瀏覽器上無法正常工作。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

ClipboardItem 介面的 supports() 靜態方法用於判斷給定的 MIME 型別 是否被剪貼簿支援,如果支援則返回 true,否則返回 false

請注意,Clipboard API 要求支援純文字、HTML 和 PNG 檔案。supports() 方法對這些 MIME 型別始終返回 true,因此測試它們是不必要的。

語法

js
supports(type)

引數

type

一個指示要測試的 MIME 型別的字串。

這些 MIME 型別始終受支援

  • text/plain
  • text/html
  • image/png

這些 MIME 型別可能受支援

  • image/svg+xml
  • "web " 開頭的自定義 MIME 型別。自定義型別(不帶 "web " 字首)必須具有正確的 MIME 型別格式。

返回值

如果給定的 MIME 型別被剪貼簿支援,則返回 true,否則返回 false

示例

將影像寫入剪貼簿

以下示例獲取一個 SVG 影像,將其表示為 Blob,然後將其寫入剪貼簿。

我們在獲取影像並使用 clipboard.write() 寫入之前,使用 supports() 檢查剪貼簿是否支援 "image/svg+xml" MIME 型別。我們還將整個函式體包裝在 try...catch 語句中,以捕獲任何其他錯誤,例如 ClipboardItem 本身不受支援。

js
async function writeClipImg() {
  try {
    if (ClipboardItem.supports("image/svg+xml")) {
      const imgURL = "/my-image.svg";
      const data = await fetch(imgURL);
      const blob = await data.blob();
      await navigator.clipboard.write([
        new ClipboardItem({
          [blob.type]: blob,
        }),
      ]);
      console.log("Fetched image copied to clipboard.");
    } else {
      console.log("SVG image not supported by clipboard");
    }
  } catch (err) {
    console.error(err.name, err.message);
  }
}

規範

規範
Clipboard API 和事件
# dom-clipboarditem-supports

瀏覽器相容性

另見