【问题标题】:How to determine if the user's browser can view PDF files如何判断用户的浏览器是否可以查看PDF文件
【发布时间】:2010-09-09 17:22:01
【问题描述】:

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

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

在 ASP.NET 中是否有特定的方法,或者答案只是 JavaScript?

【问题讨论】:

    标签: asp.net javascript pdf browser


    【解决方案1】:

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

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

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

    【讨论】:

    • 使用小 adobe 图标与 Internet explore 图标对我来说,类似于 pdf 与 html。不幸的是,IE 让我想起了 HTML,但是……嗯,你能做什么
    【解决方案2】:

    有些用户选择不在浏览器中打开 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)

    【讨论】:

      【解决方案3】:

      没有,没有,不要尝试。

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

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

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

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

      如果我在自欺欺人,我很乐意向我解释我错在哪里。

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-06-01
          • 1970-01-01
          • 1970-01-01
          • 2014-07-26
          • 2016-12-05
          • 2014-01-26
          • 2013-02-09
          相关资源
          最近更新 更多