如果我在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));

最佳答案

也许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;
})();

10-08 18:57