在 Microsoft Edge 中检测对 "application/pdf" 的支持

Detecting support for "application/pdf" in Microsoft Edge

我们的网站试图通过这样的检查来检测对 application/pdf mimetype 的支持:

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 集合只有两个条目:

检查失败,我们错误地警告用户他们的浏览器不支持 PDF。

是否有一种方法可以在 JavaScript 中检查 PDF 支持并在 Edge 中运行?

检查您使用的 Windows 10 的哪个版本。

如果您使用的是 N 版本,则 PDF 支持不是开箱即用的,您需要安装 Windows 10 Media Feature Pack or Acrobat.

有关详细信息,请参阅 Windows N editions explained

重要提示:以下答案仅与特定时间段相关

如上所述,Microsoft Edge 内置了本机 PDF 查看支持。我不相信有任何版本的 Edge 缺少此功能,但即使有,也非常罕见。

我们目前正计划在不久的将来更新 navigator.mimeType,这将使您目前的方法(如上所述)开始起作用。在那之前,我会鼓励你(我觉得建议这个很糟糕)嗅探用户代理字符串。

此问题将在 Microsoft Edge 的未来更新中得到解决。