首页 > 解决方案 > Firefox 中的 jmedia:禁用 Flash 时返回 Flash 版本

问题描述

我们使用 jQuery 的 jMedia 插件来检测浏览器中是否启用了 Flash。(我们有一些只能在 Flash 中工作的资源,还有一些有 Flash 和非 Flash 版本)。

https://github.com/malsup/media/tree/master

http://jquery.malsup.com/media/

我们像这样使用它:

jmedia 插件定义了一个变量 _jm,我们可以在其上调用各种函数。

在 Chrome 中,这样做:

_jm.detectPluginVersion("flash")

如果 Flash 未启用,将返回“未定义”,如果启用,则将版本作为字符串返回。

但是,在 Firefox 中,即使 Flash 被阻止,上述代码仍然返回版本。这给我们带来了问题,因为我们使用此测试来查看是否启用了 Flash,如果不是,我们可以启动非 Flash 替代方案(如果我们有的话)。所以在 Firefox 中,我们就像启用了 Flash 一样进行操作,但实际上并没有,这意味着资源将无法工作。

有没有更好的方法来测试是否启用了 Flash,这个插件可以跨浏览器工作?

编辑:进一步深入研究,问题似乎不仅限于 jmedia。我可以看到同样的事情navigator

铬,闪光灯禁用:

navigator.plugins["Shockwave Flash"]
=> undefined

火狐,闪光灯禁用:

navigator.plugins["Shockwave Flash"]
=> Plugin { 0: MimeType, 1: MimeType, description: "Shockwave Flash 32.0 r0", filename: "libflashplayer.so", version: "32.0.0.101", name: "Shockwave Flash", length: 2, … }

标签: javascriptjqueryflash

解决方案


推荐阅读