如何确定用户的浏览器是否能查看PDF文件

10

如何确定用户的浏览器是否可以查看PDF文件?

理想情况下,这应该与浏览器或操作系统无关。

在ASP.NET中有特定的方法吗,还是只需要使用JavaScript?

4个回答

19

不要尝试使用 "Neither, none, don't try."。

关于 dawnerd 的回答:插件检测不是正确的答案。我在我的浏览器上(Ubuntu 上的 Firefox)没有安装 PDF 插件,但我能够使用操作系统的文档查看器(而不是 Acrobat Reader)查看 PDF 文件。

今天,任何可以运行 web 浏览器的操作系统都可以直接查看 PDF 文件。

如果某个特定系统没有安装 PDF 查看器并配置浏览器使用它,那可能意味着它是一个手动安装的 Windows、一个非常简化的替代操作系统,或者是什么非常老旧的系统。

合理地假设,在这些情况下,用户将知道什么是 PDF 文件,并且要么故意选择不查看它们,要么知道如何安装所需的软件。

如果我自欺欺人,我很想知道哪里错了。


3

通过快速的谷歌搜索,找到了这个。对于各种插件都很有用。


3
有些用户选择不在浏览器中打开PDF并禁用插件(这样文件可以在浏览器窗口之外的本地应用程序中打开)。最好让用户知道需要软件来打开某些东西(无论是PDF还是其他什么),而不是尝试检测插件是否可用。
检测的另一个问题是,你需要查找的内容从版本到版本都会发生变化(例如,请参见Adobe PDF查看器的“PDF.PdfCtrl.*”与“AcroPDF.PDF.*”),以及不同的浏览器实现(前面提到的字符串在IE中使用,而Firefox则使用完全不同的检测方式。然后我们需要考虑Opera和Safari等其他浏览器)。此外,还有不同的供应商(想想Foxit和Ghostscript,尽管我不确定它们是否为浏览器提供插件),在检测插件方面可能存在差异。
有关2008年编写的脚本和一些注意事项的更多信息,请参见在Internet Explorer中检测插件(以及其他一些提示)

2
在最初忽略了这个页面上的建议后,建筑师继续使用Acrobat检测,导致了不可避免的支持噩梦。
正如ddaa所提到的,并非所有情况都能通过插件检测准确捕捉。例如,一些用户可能选择使用FoxIt Reader而不是Acrobat查看PDF文件。有些用户的浏览器不会标记它们是否准备好使用Acrobat,而且通常也不会以相同的方式标记。
更好的解决方案是让用户选择他们想要如何查看相关文档。就我个人而言,我不喜欢任何网站依赖插件 - 它破坏了Web的美感。

使用小的Adobe图标与Internet Explorer图标对我来说就像是PDF与HTML。很遗憾IE让我想起了HTML,但是...嗯,你能做什么呢? - Swati

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接