用Javascript检测Flash功能是否可用

原创 2007年09月17日 10:33:00

用&#106avascript检测Flash功能是否可用(转载)  


ZealLi 2005-09-20 11:20 于 WebDev , 2965 字 , Via |  + 0 - 0   English
转载请保留本文原始链接:http://www.zeali.net/blog/entry.php?id=179
关键字: Flash, &#106avascript, Detection, Version, 脚本
  通常我们在网页上使用Flash的时候都不会去考虑用户使用的是哪个版本的Macromedia Flash Player。而实际上尽管90%以上的用户都已经安装了Flash播放插件,却并不是每个人安装的插件都是比较新的Flash 5或6的版本。当你在Flash里面使用了一些新版本独有的特性的时候,那些仅仅安装了旧的兼容版本的Flash播放器的用户很可能将无法正常观看你费尽心力制作的内容。同时对于那些不使用IE浏览器的用户来说,他们的浏览器可能压根就不支持插件自动提示安装的功能,那将是更糟糕的事情。
  对于开发人员来说,任何时候都不应该把自身产品的可用性依赖于用户的高智商上面。如果你指望用户自己通过阅读你的帮助页面来自己发现并解决这些播放器兼容性和下载安装的问题,那么你的产品离被用户抛弃也就不远了。
要使自己的Flash能够在每个用户的浏览器上都能正常播放,我们就必须准确的了解用户当前是否已经安装了Flash播放器插件,以及其所安装的插件的版本号。这个检测工作可以通过&#106avascript来完成。

<SCRIPT LANGUAGE="&#106avascript1.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>

通过以上的&#106avascript脚本,可以检测当前浏览器是否安装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并显示版本

对于前端来说浏览器的型号版本,各个浏览器的兼容是一个不可忽视的问题。下面本人详细罗列了测试方法。请复制代码新建html文件复制后访问。一目了然。 最后富有罗列的一些各个不同浏览器的版本号,用于数据参考...
  • sanai_1992
  • sanai_1992
  • 2017年08月23日 17:20
  • 511

关于检测浏览器是否支持flash的js代码

如下: function hasFlash() {         var swf;         if (navigator.userAgent.indexOf("MSIE") > 0) {...
  • blueXh
  • blueXh
  • 2017年07月11日 15:22
  • 937

Android程序检测网络是否可用

Android程序检测网络是否可用 2013-07-16 11:52 5662人阅读 评论(0) 收藏 举报  分类: Android(18)  版权声明:...
  • w690333243
  • w690333243
  • 2017年05月23日 09:30
  • 304

JS 判断浏览器是否安装Flash 兼容IE、firefox

在网上查了很多,都不好使,最后自己查资料写了下面的方法,代码如下: var isIE = !-[1,]; if(isIE){     try{         var swf1 =...
  • tong_xinglong
  • tong_xinglong
  • 2012年03月12日 16:20
  • 9693

Java检测网络地址和服务器是否可用

最近在做一个机房巡检的小程序,希望在程序中可以检测机房的各设备IP是否能ping通,以及搭建有web服务器的设备运行是否正常,也就是能正常访问,在网上搜索了相关资料学习后,发现要么只有测试ping的,...
  • chenshunyuan6
  • chenshunyuan6
  • 2017年11月24日 12:56
  • 190

浏览器判断是否启用了flash

谷歌浏览器默认禁用了flash插件。所以要判断下浏览器是否禁用了flash Document       function demo(){       var flag = fa...
  • nature_fly088
  • nature_fly088
  • 2017年12月13日 14:00
  • 249

检查域名是否可用

1.使用万网给出的API接口 http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=baidu.com返回的结果为 200...
  • wjcquking
  • wjcquking
  • 2013年06月20日 17:05
  • 2082

批量检查代理ip是否可用 curl-multi php检测ip代理是否有效

http://www.oschina.net/code/snippet_251053_9213 批处理的  一个可以灵活的多线程的调用 cURL的。 这里跟php手册 http:...
  • zhangfeng1133
  • zhangfeng1133
  • 2016年04月18日 03:26
  • 2056

c#编写检测代理IP是否可用

原理,利用HttpWebRequest随意访问一个网页,查找网页上的关键字,然后判断是否存在关键字就可以了。 代码实现如下: WebProxy proxyObject = new We...
  • zky0901
  • zky0901
  • 2015年10月21日 15:26
  • 1902

js判断adobe flash player是否已经安装并判断版本

function flashChecker() { var hasFlash=0;    //是否安装了flash var flashVersion=0;  //flash版本 if(docume...
  • crimeheaven
  • crimeheaven
  • 2013年11月15日 09:44
  • 2200
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用Javascript检测Flash功能是否可用
举报原因:
原因补充:

(最多只允许输入30个字)