我通常会检测插件,例如Flash Player:
for (var el in navigator.plugins) {
if (navigator.plugins[el].name &&
navigator.plugins[el].name.toLowerCase().indexOf('shockwave') !== -1) {
console.log(navigator.plugins[el]);
}
}
我不需要跨浏览器的解决方案,也不想测试它是否正确。如何测试此插件是否已激活?
function pluginActive(pname) { var i=0, len=navigator.plugins.length; for ( ;i < len; ) { if (navigator.plugins[i++].name.indexOf(pname) != -1) { return true; } } return false; } console.log("Flash插件 " + (pluginsActive("Shockwave Flash") ? "已启用" : "未安装"));
- orustammanapovfor .. in
迭代数组只是偶然的,并且可能会产生奇怪的副作用。例如,浏览器可能会将方法名存储在方法的name
属性中,从而混淆您的插件检测。 - phihag