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

Bre*_*ney 7 pdf windows-10 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;
}
Run Code Online (Sandbox Code Playgroud)

这在Chrome中可以正常工作,但在Microsoft Edge中,mimeTypes集合只有两个条目:

  • "应用程序/ x-冲击波闪光"
  • "应用程序/了FutureSplash"

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

如果有办法检查在Edge中工作的JavaScript支持PDF?

Sam*_*son 5

重要提示:以下答案仅适用于特定时间段

如上所述,Microsoft Edge附带内置的本机PDF查看支持.我不相信有任何版本的Edge缺乏此功能,但如果有,它们将是非常罕见的.

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

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