Object不支持此属性或方法。为什么?

时间:2012-03-25 00:09:16

标签: javascript internet-explorer

如果我在IE8或更低版本上运行此代码,则会出现此错误:Object doesn't support this property or method

var hasFlash = ((typeof navigator.plugins != "undefined" && typeof navigator.plugins["Shockwave Flash"] == "object") || (window.ActiveXObject && (new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) != false));

1 个答案:

答案 0 :(得分:2)

可能new ActiveXObject部分失败,因为ActiveXObject(在您当前的设置中)不是new运算符可以应用的任何内容 - 或者'ShockwaveFlash.ShockwaveFlash'不是这是一个有效的输入,因此抛出异常。

但是,您可以轻松地重写代码以解决该问题:

var hasFlash = (function() {
    if (typeof navigator.plugins != "undefined" && typeof navigator.plugins["Shockwave Flash"] == "object") {
        return true;
    } else if (typeof window.ActiveXObject != "undefined") {
        try {
            new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
            return true;
        } catch (e) { }
    }

    return false;
})();
相关问题