如果我在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));
答案 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;
})();