【问题标题】:modernizr and pdf plugin detectionmodernizr 和 pdf 插件检测
【发布时间】:2013-03-04 05:49:24
【问题描述】:

modernizer 能否检测浏览器是否安装并启用了 pdf 插件?我在 Web 应用程序的 iframe 中显示 pdf。当 pdf 插件不存在时,我从 dom 客户端删除 iframe。我正在使用一些笨拙的 javascript 来进行检测,并希望用更强大/标准的东西来替换它,并且遇到了modernizr。有人知道这是否可能吗?

【问题讨论】:

    标签: pdf web-applications modernizr


    【解决方案1】:

    查看Modernizr docs 我没有看到任何检测 pdf 插件的方法,但您可以检查浏览器可以处理的 mimeTypes。将其编写为 Modernizr 测试,您可以执行以下操作:

    Modernizr.addTest('pdf', function(){
        var mimes = navigator.mimeTypes;
        for (var i = 0, i_len = mimes.length; i < i_len; i++){
            if (mimes[i].type === 'application/pdf')
                return true;
        }
        return false;
    });
    

    然后您应该能够通过 Modernizr.pdf 的值检测浏览器是否有 pdf 插件

    【讨论】:

    • 这似乎不适用于 linux 上的 firefox(可能适用于 windows,因为我没有测试过)。 navigator.mimeTypes 不包含“application/pdf”,但它支持 iframe 中的 PDF。
    • 它在 Windows 上对我有用。你的 navigator.mimeTypes 的内容是什么?
    • 对,我可以通过删除 FF 上的 adobe 插件来重现该问题,然后退回到其 pdf.js (FF19+)。这个问题似乎相关:stackoverflow.com/questions/16187902/…
    【解决方案2】:

    我不认为modernizr 会这样做,但是有一个名为PDFObject 的库,它试图检测可以呈现PDF 的各种方式。

    【讨论】:

    • 库听起来不错,但没有维护
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 2015-05-31
    • 2016-05-29
    相关资源
    最近更新 更多