我一直在我的一个项目中使用swfobject来检测最终用户是否安装了Flash版本。问题出在Firefox上,因为它显示消息:“允许运行Adobe Flash?”这是我想避免的。
这不是向最终用户显示替代内容,我想要的只是尝试检测Flash,如果没有安装闪存,则不显示任何内容,但如果安装了闪存,则不要显示允许在Firefox中运行...消息。
有没有人知道用SwfObject防止这种情况发生的任何方法?
注意:只需在html标题中加入下一行:
<script type="text/javascript" src="swfobject.js"></script>
它会触发允许运行消息:S
如果你认为有一个更好的替代swfobject来解决这个问题并且它是一个很好的多用途swf处理工具,我会全力以赴。
以下是该消息的示例:
由于
答案 0 :(得分:3)
类似的东西:
var flashInstalled = ((typeof navigator.plugins != "undefined" && typeof navigator.plugins["Shockwave Flash"] == "object") || (window.ActiveXObject && (new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) != false));
不确定是否需要检查所有浏览器,或者仅检查一些浏览器,以便您可以删除activeX检查....
答案 1 :(得分:2)
导航器mimeType 代表插件对象。您可以使用它来遍历并获取浏览器中启用的任何插件的详细信息。
示例:
调用navigator.mimeTypes
将返回一个插件对象数组。
仅供参考:如果用户已禁用插件,则该插件不会显示在此数组中。
最简单的逻辑是简单地搜索 shockwave
的描述var plugins = navigator.mimeTypes;
var i;
for(i = 0 ; i < plugins.length ; i++){
var pluginName = plugins[i].description.toLowerCase()
if(pluginName.indexOf('shockwave') > -1){
console.log(pluginName + ' : flash in enabled')
break;
}
}
将此脚本粘贴到任何控制台中。
希望这有帮助