如何判断用户的浏览器是否可以查看PDF文件
-
09-06-2019 - |
题
确定用户的浏览器是否可以查看 PDF 文件的最佳方法是什么?
理想情况下,这对浏览器或操作系统来说应该无关紧要。
在 ASP.NET 中是否有特定的方法来实现这一点,或者答案只是 JavaScript?
解决方案
都没有,都没有,不要尝试。
关于 黎明德:插件检测不是正确的答案。我的浏览器(Ubuntu 上的 Firefox)中没有安装 PDF 插件,但我可以使用操作系统的文档查看器(不是 Acrobat Reader)查看 PDF 文件。
如今,任何可以运行网络浏览器的操作系统都可以立即查看 PDF 文件。
如果特定系统没有安装 PDF 查看器并且没有配置浏览器来使用它,这可能意味着它要么是 Windows 的手工安装,要么是非常精简的替代操作系统,要么是真正复古的系统。
可以合理地假设,在任何这些情况下,用户都会知道 PDF 文件是什么,并且故意选择不能够查看它们或知道如何安装所需的软件。
如果我在欺骗自己,我希望有人向我解释我错在哪里。
其他提示
快速谷歌搜索 找到了这个. 。对于各种插件都很有用。
有些用户选择不在浏览器中打开 PDF 并禁用该插件(这允许在浏览器窗口外部的本机应用程序中打开文件)。最好让用户知道需要软件才能打开某些内容(无论是否为 PDF),而不是尝试检测插件是否可用。
检测的另一个问题是您需要查找版本之间的更改(例如,请参阅:Adobe PDF 查看器的“PDF.PdfCtrl.*”与“AcroPDF.PDF.*”)和不同的浏览器实现(前面提到的字符串用于例如 IE 中,而 Firefox 使用完全不同的检测方式。然后我们需要考虑 Opera 和 Safari 以及???)。此外,还有不同的供应商(例如 Foxit 和 Ghostscript,尽管我不确定他们是否为浏览器提供插件)在检测插件方面可能存在差异。
有关 2008 年编写的脚本以及有关注意事项的更多信息,请参阅 检测 Internet Explorer 中的插件(以及所有其他插件的一些提示).
最初忽略此页面上的建议后,架构师继续进行 Acrobat 检测,导致不可避免的支持噩梦。
正如 ddaa 提到的那样,并不是所有场景都可以通过插件检测准确捕获。例如,某些用户可能会选择使用 FoxIt Reader 而不是 acrobat 查看 PDF 文件。某些用户的浏览器不会标记他们已支持 Acrobat,而且情况当然也不总是如此。
更好的解决方案是让用户选择如何查看相关文档。就我个人而言,我不喜欢任何网站依赖插件 - 它破坏了网络的美丽。