确定用户的浏览器是否可以查看 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,而且情况当然也不总是如此。

更好的解决方案是让用户选择如何查看相关文档。就我个人而言,我不喜欢任何网站依赖插件 - 它破坏了网络的美丽。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top