【发布时间】:2010-09-09 17:22:01
【问题描述】:
确定用户的浏览器是否可以查看 PDF 文件的最佳方法是什么?
理想情况下,它在浏览器或操作系统上应该无关紧要。
在 ASP.NET 中是否有特定的方法,或者答案只是 JavaScript?
【问题讨论】:
标签: asp.net javascript pdf browser
确定用户的浏览器是否可以查看 PDF 文件的最佳方法是什么?
理想情况下,它在浏览器或操作系统上应该无关紧要。
在 ASP.NET 中是否有特定的方法,或者答案只是 JavaScript?
【问题讨论】:
标签: asp.net javascript pdf browser
在最初忽略此页面上的建议后,架构师继续使用 Acrobat 检测,导致不可避免的支持噩梦。
正如 ddaa 所述,并非所有场景都可以通过插件检测准确捕获。例如,某些用户可能会选择使用 FoxIt Reader 而不是 acrobat 来查看 PDF 文件。一些用户的浏览器不会标记他们已准备好 Acrobat,当然也不总是以相同的方式。
更好的解决方案是让用户选择他们希望如何查看相关文档。就我个人而言,我不喜欢让任何网站依赖插件——它破坏了网络的美感。
【讨论】:
有些用户选择不在浏览器中打开 PDF 并禁用插件(这允许文件在浏览器窗口外部的本机应用程序中打开)。与其尝试检测插件是否可用,不如让用户知道打开某些东西(无论是否为 PDF)需要软件。
检测的另一个问题是您需要寻找不同版本的变化(例如,请参阅:Adobe PDF 查看器的“PDF.PdfCtrl.*”与“AcroPDF.PDF.*”)和不同的浏览器实现(例如,前面提到的字符串在 IE 中使用,而 Firefox 使用完全不同的检测方式。那么我们需要考虑 Opera 和 Safari 和???)。此外,不同的供应商(想想 Foxit 和 Ghostscript,虽然我不确定他们是否为浏览器提供插件)在检测插件方面可能存在差异。
有关 2008 年编写的脚本和有关警告的更多信息,请参阅Detecting plugins in Internet Explorer (and a few hints for all the others)。
【讨论】:
没有,没有,不要尝试。
回复dawnerd:插件检测不是正确答案。我的浏览器(Ubuntu 上的 Firefox)中没有安装 PDF 插件,但我可以使用操作系统的文档查看器(不是 Acrobat Reader)查看 PDF 文件。
今天,任何可以运行网络浏览器的操作系统都可以开箱即用地查看 PDF 文件。
如果特定系统没有安装 PDF 查看器并且浏览器配置为使用它,这可能意味着它要么是手动安装的 Windows,要么是一个非常精简的替代操作系统,或者是一些非常复古的东西。
可以合理地假设,在任何这些情况下,用户都会知道 PDF 文件是什么,并且故意选择无法查看它们或知道如何安装所需的软件。
如果我在自欺欺人,我很乐意向我解释我错在哪里。
【讨论】:
快速谷歌搜索found this。适用于各种插件。
【讨论】: