Navigator: mimeTypes プロパティ

非推奨: この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

MimeTypeArray オブジェクトを返します。このオブジェクトには、ブラウザーが認識し対応している MIME タイプを表す MimeType オブジェクトのリストが含まれています。 この配列を使用して、指定した形式のファイルを処理するために使用できる有効なプラグインに関する情報を取得することができます。 返されたオブジェクトの名前付きプロパティは列挙できません(非常に古いバージョンのブラウザーを除く)。

最近のバージョンの仕様では、返される MIME タイプの設定がハードコードされています。 PDF ファイルがインラインで表示できる場合は、application/pdftext/pdf が掲載されています。 それ以外の場合は、空のリストが返されます。

メモ: PDF ファイルのインライン表示が対応しているかどうかを判断するには、Navigator.pdfViewerEnabled を使用してください。このプロパティから推測しないでください。

古いバージョンのブラウザーでは、プロパティによって返されたリストがハードコードされておらず、他にも MIME タイプを返す可能性があります。

MimeTypeArray オブジェクトには、length プロパティのほか、item(index) および namedItem(name) メソッドがあります。

PDF のインライン表示に対応している場合、MIME タイプ application/pdftext/pdf の項目があります。 それ以外の場合は、空の MimeTypeArray が返されます。 有効なプラグインが対応する説明とファイル拡張子は、それぞれ'pdf' と 'Portable Document Format' にハードコードされています。

下記コードは、PDF ファイルがインラインで表示できるかどうかをテストし、その後、プラグインの説明と対応しているファイル拡張子を出力します。

js
if ("application/pdf" in navigator.mimeTypes) {
  // browser supports inline viewing of PDF files.

  const { description, suffixes } = navigator.mimeTypes["application/pdf"];
  console.log(`Description: ${description}, Suffix: ${suffixes}`);
  // expected output: Description: Portable Document Format, Suffix: pdf
}

上記のコードでは application/pdf をテストしていますが、同様に text/pdf を調べてもよいことに注意してください。(どちらの MIME タイプも true になります。) さらに、現在のブラウザーでは、プラグインの説明と拡張子を取得する必要はありません。なぜなら、この情報もハードコードされているからです。

仕様書

Specification
HTML Standard
# dom-navigator-mimetypes

ブラウザーの互換性

BCD tables only load in the browser