firefox中的jmedia:禁用Flash时返回Flash版本

时间:2019-02-04 13:20:27

标签: javascript jquery 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,则可以启动非Flash替代方案(如果有的话)。因此,在Firefox中,我们就像在启用Flash一样进行操作,但实际上并未启用。这意味着该资源将无法使用。

是否有更好的方法来测试Flash是否已启用,并且可以跨浏览器运行?

编辑:进一步研究这个问题,问题似乎不仅限于jmedia。我可以用navigator看到同一件事:

chrome,禁用闪光灯:

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

firefox,禁用闪光灯:

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, … }

0 个答案:

没有答案