我知道如何检测Flash播放器是否安装在浏览器中 . 我正在使用swfobject的hasFlashPlayerVersion()函数 . 但是,我可以't seem to find any documentation on how to detect if the plug-in is installed and just disabled. I didn'看到Flash Player Detection Kit中的任何文档,它检查是否启用了插件 .
我知道如何检测Flash播放器是否安装在浏览器中 . 我正在使用swfobject的hasFlashPlayerVersion()函数 . 但是,我可以't seem to find any documentation on how to detect if the plug-in is installed and just disabled. I didn'看到Flash Player Detection Kit中的任何文档,它检查是否启用了插件 .
4 回答
您可以在与浏览器的javascript通信的不可见swf中进行javascript调用 . 如果发生超时,那是因为浏览器没有安装Flash播放器,或者Flash播放器已被禁用 .
我同意Ape并且在很久以前做了类似的事情,其页面上写着“检测Flash播放器......”并等待20秒,同时加载swf文件并立即将浏览器重定向到页面外 .
如果计时器到期(swf从未加载),它将提示用户安装Flash .
可以将该方法与您提到的swfobject hasFlashPlayerVersion()函数结合使用 . 如果它们有闪光但swf永远不会加载,那么假设闪光灯被禁用是相当安全的 .
所以,实际上只有3种选择:
没有闪光灯
Flash:已启用
Flash:已禁用
在伪代码中,可能如下所示:
这与javascript函数一起工作,如:
从一个小的swf文件调用,包含:
我希望在某种程度上有所帮助 .
这是我正在使用的一个很好的库:http://www.featureblend.com/javascript-flash-detection-library.html
我认为无法检测是否已安装闪存但已禁用 .
如果有人禁用Flash,他们可能不想告诉它是否只是被禁用或根本没有安装 . 因此,浏览器会告诉您它“不可用” .