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