Webbrowser,检测是否安装了PDF阅读器?

2023-11-30

有没有办法检查用户是否安装了PDF阅读器? 也许使用 ActiveX 组件?

请你帮助我好吗?


您可以使用以下命令检测已安装的插件window.navigator.plugins这将返回一个包含已安装插件详细信息的数组,但这不适用于 Internet Explorer。运行此代码时,IE 仅返回页面中包含嵌入标签的数组。感谢IE,这么有用吗?

好吧,让我们尝试解决这个问题。以下函数应该适用于除 IE 之外的所有主要浏览器。

function hasPlugin(name) {
    name = name.toLowerCase();
    var plugins = window.navigator.plugins;
    for (var i=0, len = plugins.length; i < len; i++) {
        if (plugins[i].name.toLowerCase().indexOf(name) > -1) {
            return true;
        }
    }
    return false;
}

你可以调用这个函数并检查插件状态,如下所示

hasPlugin('Flash');
hasPlugin('QuickTime');

对于 IE,我们应该尝试这个

function hasPlugin(name) {
    try {
        new ActiveXObject(name);
        return true;
    } catch (e) {
        return false;
    }
}

您可以调用此函数并检查 IE 的插件状态

hasPlugin('ShockwaveFlash.ShockwaveFlash');

您可以像这样跨浏览器声明此函数

var hasPlugin;
if (navigator.userAgent.indexOf('MSIE')) {
    hasPlugin = function(name) {
        try {
            new ActiveXObject(name);
            return true;
        } catch (e) {
            return false;
        }
    }
}
else {
    hasPlugin = function(name) {
        name = name.toLowerCase();
        var plugins = window.navigator.plugins;
        for (var i=0, len = plugins.length; i < len; i++) {
            if (plugins[i].name.toLowerCase().indexOf(name) > -1) {
                return true;
            }
        }
        return false;
    }
}

然后就可以跨浏览器调用该函数了。抱歉,我没有为我的浏览器(Firefox、Chrome 或 IE)安装任何 PDF 插件,因此我可以告诉您我们应该传递 hasPlugin 函数的参数的确切名称。

我希望这能帮到您。顺便说一下,我没有在浏览器中尝试过代码,这是我的理论知识。但我想这会对你有所帮助-希望-:-)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Webbrowser,检测是否安装了PDF阅读器? 的相关文章