2011-05-17 84 views
2

与Android浏览器一样,Chrome已经捆绑了一段“原生”flashblock。 swfobject报告说即使该块已为所有站点启用,Flash播放器也可用。我想要做的就是检测用户是否使用原生Flashblock,并提供一些消息。某些服务(如Facebook JS SDK)在没有为跨域通信启用闪存的情况下无法工作,也不提供检测失败的方法。我知道如何检测原始Flashblock的扩展/插件,但本机版本不会出现在navigator.plugins列表中。如何检测Chrome(以及其他)中是否启用了本机FlashBlock?

有没有办法检测用户是否在启用本机flashblock的情况下运行?

回答

3

不幸的是,在Chrome中没有插件加载系统的编程接口。

您可以做的最好的方式是加载一个Flash对象,并通过一些明确定义的方法(GetVariable("$version")是典型示例)来确定成功。在你担心的情况下,闪存将显示在navigator.plugins中,但不会成功加载测试插件。无论如何,进行这种检查真的不是一个坏主意,因为闪存可能无法加载的原因很多,超出了闪存封锁(本地或其他方式)。

+0

我想补充一点,这种事情可能是一个合理的功能请求:http://new.crbug.com/是正确的地方,如果你决定这是你想要在未来的版本中要求的东西的Chrome。 – 2011-05-18 13:36:12

+1

我将它添加为一个错误,以下是我如何解决它,感谢您的答案:https://gist.github.com/981510。再次感谢! – Andrew 2011-05-19 19:25:31

相关问题