代码之家  ›  专栏  ›  技术社区  ›  Joe Ratzer

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

  •  10
  • Joe Ratzer  · 技术社区  · 17 年前

    确定用户浏览器是否可以查看PDF文件的最佳方法是什么?

    理想情况下,它在浏览器或操作系统上应该无关紧要。

    在ASP。NET,或者答案只是JavaScript?

    4 回复  |  直到 17 年前
        1
  •  19
  •   Community Mohan Dere    8 年前

    两者都没有,不要尝试。

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

    如今,任何可以运行网络浏览器的操作系统都可以开箱即用地查看PDF文件。

    如果一个特定的系统没有安装PDF查看器,也没有配置浏览器来使用它,这可能意味着它要么是手工安装的Windows,要么是一个非常精简的替代操作系统,要么是真正复古的东西。

    可以合理地假设,在任何一种情况下,用户都会知道PDF文件是什么,并且要么故意选择无法查看它们,要么知道如何安装所需的软件。

    如果我在自欺欺人,我很想让人向我解释我错了。

        2
  •  3
  •   dawnerd    17 年前

    快速谷歌搜索 found this 。适用于各种插件。

        3
  •  3
  •   Antony    17 年前

    有些用户选择不在浏览器中打开PDF并禁用插件(这允许在浏览器窗口外部的本机应用程序中打开文件)。与其尝试检测插件是否可用,不如让用户知道打开某些东西(无论是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) .

        4
  •  2
  •   Joe Ratzer    16 年前

    在最初忽略此页面上的建议后,架构师继续进行Acrobat检测,导致不可避免的支持噩梦。

    正如ddaa所提到的,插件检测并不能准确捕捉所有场景。例如,一些用户可能会选择使用FoxIt Reader而不是acrobat查看PDF文件。一些用户的浏览器没有标记他们已经准备好使用Acrobat,当然也不总是以同样的方式。

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