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

浏览器兼容性

另见