是否可以通过JavaScript检测插件是否被激活
Is it possible to detect if a plugin is activated or not through JavaScript?
这样我通常会检测插件,比如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]);
}
}
我不是在寻找跨浏览器的解决方案,也不想测试它是否正确。测试这个插件是否处于活动状态的方法是什么?
其他两种解决方案都可以确定是否安装了插件并启用了插件。
目前无法确定插件是否已安装但已禁用。Navigator.plugins
不包含仍在安装的禁用插件。
navigator.plugins
是一个数组,因此您应该在现代浏览器中使用for each
,并使用索引进行迭代,否则:
function pluginActive(pname) {
for (var i = 0;i < navigator.plugins.length;i++) {
if (navigator.plugins[i].name.indexOf(pname) != -1) {
return true;
}
}
return false;
}
console.log("Flash plugin " +
(pluginsActive("Shockwave Flash") ? "active" : "not present"));
您无法区分已禁用和不存在的插件。请记住,在插件激活/停用生效之前,您可能必须重新启动浏览器。
如果有问题的插件被禁用,它将不会出现在navigator.plugins
中,也不会以其他方式暴露在页面中。
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 如何检测是否有溢出
- jQuery中是否内置了任何字符串格式化函数
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 测试索引值是否等于某个数字的倍数
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- 有没有办法在Chrome上获得真/假,以了解硬件加速是否已激活
- 是否可以使用javascript激活windows应用程序窗口
- 是否可以使用超链接更改页面并在目标页面上激活脚本
- 如何检查是否从Firefox扩展激活了Javascript
- 是否激活了sail.js
- Firefox键盘快捷键是否只在浏览器启动时激活?
- Javascript -检查自动完成激活时是否显示建议
- 是否可以通过jQuery代码激活data-add-back-btn ?
- 是否可以通过JavaScript检测插件是否被激活
- Chrome扩展隐身模式:检查是否激活或开始与一个按钮
- 如何判断谷歌翻译是否处于激活状态?