用Javascript检测Flash功能是否可用
来源:互联网 发布:那个软件看黄漫好 编辑:程序博客网 时间:2024/05/20 18:46
用javascript检测Flash功能是否可用(转载)
ZealLi 2005-09-20 11:20 于 WebDev , 2965 字 , Via | + 0 - 0 English
转载请保留本文原始链接:http://www.zeali.net/blog/entry.php?id=179
关键字: Flash, javascript, Detection, Version, 脚本
通常我们在网页上使用Flash的时候都不会去考虑用户使用的是哪个版本的Macromedia Flash Player。而实际上尽管90%以上的用户都已经安装了Flash播放插件,却并不是每个人安装的插件都是比较新的Flash 5或6的版本。当你在Flash里面使用了一些新版本独有的特性的时候,那些仅仅安装了旧的兼容版本的Flash播放器的用户很可能将无法正常观看你费尽心力制作的内容。同时对于那些不使用IE浏览器的用户来说,他们的浏览器可能压根就不支持插件自动提示安装的功能,那将是更糟糕的事情。
对于开发人员来说,任何时候都不应该把自身产品的可用性依赖于用户的高智商上面。如果你指望用户自己通过阅读你的帮助页面来自己发现并解决这些播放器兼容性和下载安装的问题,那么你的产品离被用户抛弃也就不远了。
要使自己的Flash能够在每个用户的浏览器上都能正常播放,我们就必须准确的了解用户当前是否已经安装了Flash播放器插件,以及其所安装的插件的版本号。这个检测工作可以通过javascript来完成。
<SCRIPT LANGUAGE="javascript1.1">
<!--
// U can change this number to check specific version of flash
var MM_contentVersion = 6;
var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ?
navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
if ( plugin ) {
var words = navigator.plugins["Shockwave Flash"].description.split(" ");
for (var i = 0; i < words.length; ++i){
if (isNaN(parseInt(words[i])))
continue;
var MM_PluginVersion = words[i];
}
var MM_FlashCanPlay = MM_PluginVersion >= MM_contentVersion;
}
else if( navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0 &&
(navigator.appVersion.indexOf("Win") != -1) ) {
//FS hide this from IE4.5 Mac by splitting the tag
document.write('<SCR' + 'IPT LANGUAGE=VBScript>
');
document.write('on error resume next
');
document.write('MM_FlashCanPlay = ( IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & MM_contentVersion)))
');
document.write('</SCR' + 'IPT>
');
}
if ( MM_FlashCanPlay ) {
alert("Flash Detection OK. U can play.");
}
else{
alert("Flash Detection Failed. Need Download specific version.");
}
//-->
</SCRIPT>
通过以上的javascript脚本,可以检测当前浏览器是否安装Flash插件以及插件的版本是否满足要求。
你可以通过修改脚本的第一行变量var MM_contentVersion = 6的数值来决定需要用户的Flash版本至少应该是多少。比如像我接下来很可能马上要开始设计原型的基于Macromedia Flash 8 series的一套富客户端系统,由于用到了很多Flash 8版本里面提供的新功能,所以必须要求用户的Flash播放器版本也更新到8,就可以把第一行变量赋值语句改为var MM_contentVersion = 8;
最后一段的两个alert语句只是一个最简单的示例。实际上你可以在这个if/else判断里面做需要做的事情,比如如果MM_FlashCanPlay变量为true的话你就可以按正常情况去载入包含了Flash的页面;相反如果变量为false的话,你可以把页面重定向到一个引导用户下载安装指定版本的Flash播放器的页面,或者不载入Flash取而代之一张gif图片,等等。
以下的url将给你提供更多关于如何控制检测你的Flash状态的信息:
http://www.macromedia.com/software/flash/download/deployment_kit/
- 用Javascript检测Flash功能是否可用
- 用Javascript检测Flash插件是否安装以及版本
- 用VBS直接检测代理是否可用。
- 检测Intent是否可用
- 检测网络是否可用
- 检测url是否可用
- 通过JavaScript检测浏览器是否安装了Flash Player
- Javascript检测Flash插件是否安装及版本号
- Javascript检测Flash插件是否安装及版本号
- android 检测网络是否可用
- 检测当前网络是否可用
- Android 检测网络是否可用
- javascript检测各种浏览器型号和版本、检测是否支持flash并显示版本
- 检测浏览器是否安装flash
- 检测浏览器是否安装flash
- 为什么要检测数据库连接是否可用,项目经理说如果实现了这个功能,客户会认可你的软件很专业,很好用
- javascript检测客户端flash插件
- javascript/js 检测浏览器类型和版本,检查浏览器是否支持flash,检查flash版本一站搞定~
- Format 用法
- 在Web页中使用Media Player二
- Lean Software Development, Part 2: Eliminate Waste
- MediaPlayer控件属性描述
- 有感:应聘Java笔试时可能出现问题及其答案
- 用Javascript检测Flash功能是否可用
- 什 么 是ECP、EPP ?
- Flash Media Server 2.0
- 学习和研究时间表
- JSP与树型菜单
- HTML及XML语言的转义字符
- PE文件格式
- 转:Nettiers模板属性说明
- 用C语言编程递归求行列式的值