JavaScript检查是否安装Flash插件及其Flash版本
JavaScript检查是否安装Flash插件及其Flash版本
如何用JavaScript判断客户端浏览器是否安装了Flash插件,及其版本? 通常我们在网页上使用Flash的时候都不会去考虑用户使用的是哪个版本的 Macromedia Flash Player。而实际上尽管90%以上的用户都已经安装了Flash播放插件,却并不是每个人安装的插件都是比较新的Flash 5或6的版本。当你在Flash里面使用了一些新版本独有的特性的时候,那些仅仅安装了旧的兼容版本的Flash播放器的用户很可能将无法正常观看你费尽心力制作的内容。同时对于那些不使用IE浏览器的用户来说,他们的浏览器可能压根就不支持插件自动提示安装的功能,那将是更糟糕的事情。 对于开发人员来说,任何时候都不应该把自身产品的可用性依赖于用户的高智商上面。如果你指望用户自己通过阅读你的帮助页面来自己发现并解决这些播放器兼容性和下载安装的问题,那么你的产品离被用户抛弃也就不远了。 要使自己的Flash能够在每个用户的浏览器上都能正常播放,我们就必须准确的了解用户当前是否已经安装了Flash播放器插件,以及其所安装的插件的版本号。这个检测工作可以通过Javascript来完成。 JS Code: <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\> \n'); document.write('on error resume next \n'); document.write('MM_FlashCanPlay = ( IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & MM_contentVersion)))\n'); document.write('</SCR' + 'IPT\> \n'); } 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/ 扫一扫加作者微信
参考文档:
[原创] 检查文件是否Flash格式(*.swf) 检查文件是否图片格式 框架是否支持升级是指框架版本升级吗?是收费还是免费? 检测Windows系统是否安装.NET 4.5版本 开发技巧:删除资料保存日志并检查数据是否能删除 检查Datatable表指定字段的值是否重复|C/S框架网 删除用户前逻辑判断,检查当前用户是否关联业务数据或创建业务数据 SQL存储过程:删除基础资料前逻辑判断,检查是否有关联业务数据 C# LINQ使用Distinct方法检查对象某个属性的值是否重复 C#正则表达式判断url是否网络路径(http/ftp/https三种协议) Win XP系统安装.NET Framework 4.0失败:一般信任关系失败解决方案 版本自动升级程序AutoUpgrader数据库结构 软件开发与设计 - MIS-管理信息系统(ESChop2.7.3版本数据库表) 软件开发与设计 - MIS-管理信息系统(论坛discuzxl.5版本数据库表结构) 软件开发与设计 - BBS-电子布告栏系统-SiteServer Space 单独安装版
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |