【问题标题】:How to check user preinstalled applications on their machine ?如何检查用户机器上预装的应用程序?
【发布时间】:2015-03-18 16:12:08
【问题描述】:

我想制作一个小型登录页面来诊断所有需求。

我想检查我的用户机器是否有:

  • Adobe 阅读器
  • Flash 播放器
  • 必须启用 JavaScript

构建和检查类似内容的最佳做法是什么?

有什么需要注意的吗?

现在有没有提供这种功能的工具?

我希望至少有人可以为我指明正确的方向。

谢谢。

【问题讨论】:

标签: javascript php html


【解决方案1】:

如果没有使用 HTML 中的 noscript 标签启用 JavaScript,您可以向用户显示一条消息。 this answer 展示了如果 Flash 被禁用/丢失,您如何显示其他内容。

但无法检测 Adob​​e Reader 的存在。过去,通常只包含 Adob​​e Reader 的下载按钮,但如今,PDF 是如此普遍,以至于您通常可以假设用户的计算机上有一个可以处理它们的程序。

【讨论】:

    【解决方案2】:

    应该直截了当,要通知用户 javascript 已禁用,您可以使用 noscript 标记。

    当然,如果禁用了 javascript,则无法运行它,因此其余的检查将失败。

    要检查已安装的插件,请检查navigator.plugins

    var checkfor = {
        'Shockwave Flash' : false,
        'Adobe Acrobat'   : false
    };
    
    [].slice.call(navigator.plugins).forEach(function(x) {
        if (x.name in checkfor) checkfor[x.name] = true;
    });
    
    
    var p = document.createElement('p');
    p.innerHTML = 'JavaScript is enabled';
    document.body.appendChild(p);
    
    for (var key in checkfor) {
        if ( checkfor[key] ) {
            var p = document.createElement('p');
            p.innerHTML = key + ' is installed';
            document.body.appendChild(p);
        }
    }

    FIDDLE

    【讨论】:

    • 请问,为什么一开始就设置为 false 呢?
    • @841710176 - 如果它们已安装,我可以将它们设置为 true 吗?
    猜你喜欢
    • 2016-11-27
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-22
    • 2011-03-15
    相关资源
    最近更新 更多