剪贴板项目:supports() 静态方法

有限可用性

此功能不是基线,因为它在某些最广泛使用的浏览器中不起作用。

安全上下文:此功能仅在安全上下文(HTTPS)中可用,在一些或所有支持的浏览器中可用。

ClipboardItem 接口的 supports() 静态方法,如果剪贴板支持给定的 MIME 类型,则返回 true,否则返回 false

请注意,剪贴板 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,然后将其写入剪贴板。

我们使用 supports() 来检查剪贴板是否支持 "image/svg+xml" MIME 类型,然后再获取图像并使用 clipboard.write() 将其写入。我们还将整个函数体包装在 try..catch 语句中,以捕获任何其他错误,例如 ClipboardItem 本身不受支持。

js
async function writeClipImg() {
  try {
    if (ClipboardItem.supports("image/svg+xml")) {
      const imgURL = "/myimage.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);
  }
}

规范

规范
剪贴板 API 和事件
# dom-clipboarditem-supports

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅