javascript - 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, … }
解决方案
推荐阅读
- java - Jackson - POJO 到 JSON 包括 @JSONProperty 以及 JSON 中的 fieldName
- python - 递归函数调用未将值添加到列表
- python - 实现二进制搜索以查找索引?
- swift - Xcode 12 中的 Switch 必须详尽无遗
- r - R Plotly - 按钮未使用正确的数据更新(带颜色的条形图)
- assembly - 了解将字符串移动到堆栈的操作数大小不匹配
- java - H2 数据库不支持 schema.package.function 结构
- url - Episerver : 获取链接属性以生成绝对 URL
- r - 如何在日期 AAAA-MM-DD IN R 中格式化 AAAAMMDD?
- control-m - 默认情况下,control-M 作业会保持等待状态多长时间才能满足先决条件?