在IE中用JavaScript评估navigator.plugins是什么?

时间:2017-03-13 03:03:11

标签: javascript

本书适用于Web开发人员的专业JavaScript 提供了以下代码,用于检测是否安装了插件:

<script type="text/javascript">
//check plugins in non-IE browser
function hasPlugin(name) {
    name = name.toLowerCase();
    for (var i = 0; i < navigator.plugins.length; i++) {
        if (navigator.plugins[i].name.toLowerCase().indexOf(name) > -1) {
            return true;
        }
    }

    return false;
}

//check plugins in IE
function hasIePlugin(name) {
    try {
        new ActiveXObject(name);
        return true;
    } catch (ex) {
        return false;
    }
}

//check if the flash plugin exists in a browser
function hasFlash() {
    var result = hasPlugin("Flash");
    if (!result) {
        result = hasIePlugin("ShockwaveFlash.ShockwaveFlash");
    }

    return result;
}
</script>

hasPlugin 函数将在IE中返回false, navigator.plugins.length 用于for循环,所以我想知道 navigator.plugins 在IE中评估。我在IE8中运行了以下代码:

alert(navigator.plugins); //return [object]
alert(navigator.plugins.length); //return 0
alert(navigator.plugins === null); //return false
alert(navigator.plugins === undefined); //return false

//check if it is an empty object
var i = 0;

for (var key in navigator.plugins) {
    ++i;
}

alert(i); //return 1

navigator.plugins 未评估为null,未定义且它有一个元素,但其长度为0.那么 navigator.plugins 在IE中的评估是什么?

0 个答案:

没有答案