web-dev-qa-db-ja.com

MicrosoftEdgeでの「application / pdf」のサポートの検出

私たちのサイトは、次のようなチェックを介してapplication/pdfmimetypeのサポートを検出しようとします。

function isPdfMimeTypeSupported() {
  if (navigator.mimeTypes != null && navigator.mimeTypes.length > 0)
    for (i = 0; i < navigator.mimeTypes.length; i++) {
      var mtype = navigator.mimeTypes[i];
      if (mtype.type == "application/pdf" && mtype.enabledPlugin)
        return true;
    }
  return false;
}

これはChromeで期待どおりに機能しますが、Microsoft Edgeでは、mimeTypesコレクションには2つのエントリしかありません。

  • 「application/x-shockwave-flash」
  • 「アプリケーション/ futuresplash」

チェックは失敗し、ブラウザがPDFをサポートしていないことをユーザーに誤って警告しています。

Edgeで動作するJavaScriptでPDFサポートを確認する方法がありますか?

7
Brett Haney

重要:次の回答は特定の期間にのみ関連します

Microsoft Edgeは、上記で提案したように、ネイティブPDF表示サポートが組み込まれています。私は信じていますこの機能を欠いているEdgeのバージョンはありませんが、もしあれば、それらは非常にまれでしょう。

現在、近い将来navigator.mimeTypeを更新する予定です。これにより、現在のアプローチ(上記のとおり)が機能し始めます。それまでは、ユーザーエージェント文字列をスニッフィングすることをお勧めします(これを提案するのはひどい思いです)。

この問題は、MicrosoftEdgeの将来のアップデートで解決される予定です。

5
Sampson

使用しているWindows10のバージョンを確認してください。

Nエディションを使用している場合、PDFサポートはすぐに利用できないため、 Windows 10 Media Feature Pack をインストールする必要があります。 =または Acrobat

詳細については、 Windows Nエディションの説明 を参照してください。

1
Mark Cooper