You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firefox浏览器Flash启用状态检测及代码异常问题咨询

我来帮你搞定Firefox 59里Flash启用状态检测的问题,先说说你现有代码的问题,再给你靠谱的解决方案~

为啥你的代码不管用?

你代码里的ActiveXObject('ShockwaveFlash.ShockwaveFlash')是IE浏览器专属的API,Firefox从始至终都不支持这个,所以代码必然会进入catch分支。而后面判断navigator.mimeTypes['application/x-shockwave-flash']是否存在,只能说明浏览器安装了Flash插件,但完全不代表插件是启用状态——这就是为啥即使你禁用了Flash,hasFlash还是会变成true的核心原因。

针对Firefox的正确检测代码

要准确判断Flash是否启用,得检查插件的enabledPlugin属性,而不是只看插件是否存在。试试这段代码:

function checkFlashEnabled() {
    let flashEnabled = false;
    // 遍历浏览器所有已安装的插件
    for (const plugin of navigator.plugins) {
        // 找到Shockwave Flash插件
        if (plugin.name.indexOf('Shockwave Flash') !== -1) {
            // enabledPlugin不为null说明插件已启用
            flashEnabled = plugin.enabledPlugin !== null;
            break;
        }
    }
    return flashEnabled;
}

// 调用示例
console.log(checkFlashEnabled());

这段代码在Firefox 59上是有效的:它会遍历所有插件找到Flash,然后通过enabledPlugin属性判断是否处于启用状态——如果插件被禁用,enabledPlugin会返回null。

手动检查Flash状态的方法

如果你想直观确认Flash的状态,也可以手动操作:

  • 打开Firefox,在地址栏输入 about:addons 按回车
  • 切换到「插件」标签页
  • 找到「Shockwave Flash」,查看它的状态选项(始终启用/请求时启用/从不启用)

内容的提问来源于stack exchange,提问作者NIsham Mahsin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:34:19