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

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

  •  8
  • Joe Ratzer  · 技术社区  · 16 年前

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

    在ASP.NET中有没有一种特定的方法来实现这一点,或者答案仅仅是JavaScript?

    4 回复  |  直到 16 年前
        1
  •  19
  •   Community CDub    8 年前

    都不是,都不是,不要尝试。

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

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

    可以合理地假设,在任何情况下,用户都知道PDF文件是什么,或者故意选择不查看它们,或者知道如何安装所需的软件。

        2
  •  3
  •   dawnerd    16 年前

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

        3
  •  3
  •   Antony    16 年前

    有些用户选择不在浏览器中打开PDF并禁用插件(这允许在浏览器窗口外部的本机应用程序中打开文件)。最好让用户知道需要软件来打开某些东西(无论它是否是PDF),而不是尝试检测插件是否可用。

    检测的另一个问题是,您需要查找不同版本的更改(例如,对于Adobe PDF viewer,请参阅“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    15 年前

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

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