Javascript中的跨浏览器Flash检测
是否有人能在IE / Firefox上正常运行的脚本示例能够检测浏览器是否能够显示嵌入式Flash内容。我之所以说是可靠的,是因为我知道不可能100%的时间。
解决方案
也许Adobe的Flash Player检测工具在这里可能会有所帮助?
http://www.adobe.com/products/flashplayer/download/detection_kit/
SWFObject非常可靠。我已经使用它很长时间了,没有任何麻烦。
在http://whatsmy.browsersize.com上查看源代码(第14-120行)。
这是jsbin上抽象的跨浏览器代码,仅用于闪存检测,
适用于:FF / IE / Safari / Opera / Chrome。
Carl Yestrau的JavaScript Flash检测库,在这里:
http://www.featureblend.com/javascript-flash-detection-library.html
...可能就是我们想要的。
在Web文档中检测和嵌入Flash是一项非常困难的任务。
我对SWFObject和Adobe解决方案产生的质量和非标准合规标记感到非常失望。此外,我的测试发现Adobe的自动更新程序不一致且不可靠。
JavaScript Flash检测库(Flash Detect)和JavaScript Flash HTML生成器库(Flash TML)是一种清晰,可维护且符合标准的标记解决方案。
-"路加福音阅读原文!"
要创建兼容标准对象的Flash对象(但是使用JavaScript),建议我们看一下
不引人注目的Flash对象(UFO)
http://www.bobbyvandersluis.com/ufo/index.html
我同意麦克斯图尔特(Max Stewart)的观点。 SWFObject是必经之路。我想用一个代码示例来补充他的答案。这应该可以入门:
确保包含了swfobject.js文件(在此处获取):
<script type="text/javascript" src="swfobject.js"></script>
然后像这样使用它:
if(swfobject.hasFlashPlayerVersion("9.0.115")) { alert("You have the minimum required flash version (or newer)"); } else { alert("You do not have the minimum required flash version"); }
将" 9.0.115"替换为所需的最低Flash版本。我选择9.0.115作为示例,因为那是添加了h.264支持的版本。
如果访问者没有Flash,它将报告Flash版本为" 0.0.0",因此,如果我们只想知道他们是否完全具有Flash,请使用:
if(swfobject.hasFlashPlayerVersion("1")) { alert("You have flash!"); } else { alert("You do not flash :-("); }