js检测flash是否安装,及其版本

在网上找了好久,几乎都是复制的同一份代码,

在没装flash的情况下IE浏览器报错:“Automation 服务器不能创建对象”。

在网上找了解决办法,都是说设置IE浏览器的安全级别,或者给系统安装补丁升级。

我说大哥,我们写代码还得让用户先给我们配置好环境啊?


然后就请教了做flash的大哥哥同事,分分钟解决问题,整理过的代码,直接贴上

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>flash检测</title>
</head>
<body>
	<h2>检测是否安装了flash,flash版本。检测结果如下:</h2>
	<script>
		function checkflashversion(){
	        win = window;
	        doc = document;
	        nav = navigator;
	        UNDEF = "undefined";
	        OBJECT = "object";
	        SHOCKWAVE_FLASH = "Shockwave Flash";
	        SHOCKWAVE_FLASH_AX = "ShockwaveFlash.ShockwaveFlash";
	        FLASH_MIME_TYPE = "application/x-shockwave-flash";
	        EXPRESS_INSTALL_ID = "SWFObjectExprInst";
	        ON_READY_STATE_CHANGE = "onreadystatechange";
	        var w3cdom = typeof doc.getElementById != UNDEF && typeof doc.getElementsByTagName != UNDEF && typeof doc.createElement != UNDEF,
	            u = nav.userAgent.toLowerCase(),
	            p = nav.platform.toLowerCase(),
	            windows = p ? /win/.test(p) : /win/.test(u),
	            mac = p ? /mac/.test(p) : /mac/.test(u),
	            webkit = /webkit/.test(u) ? parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, // returns either the webkit version or false if not webkit
	            ie = !+"\v1", // feature detection based on Andrea Giammarchi's solution: http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html
	            playerVersion = [0,0,0],
	            d = null;
	        if (typeof nav.plugins != UNDEF && typeof nav.plugins[SHOCKWAVE_FLASH] == OBJECT) {
	            d = nav.plugins[SHOCKWAVE_FLASH].description;
	            if (d && !(typeof nav.mimeTypes != UNDEF && nav.mimeTypes[FLASH_MIME_TYPE] && !nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)) { // navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin indicates whether plug-ins are enabled or disabled in Safari 3+
	                plugin = true;
	                ie = false; // cascaded feature detection for Internet Explorer
	                d = d.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
	                playerVersion[0] = parseInt(d.replace(/^(.*)\..*$/, "$1"), 10);
	                playerVersion[1] = parseInt(d.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
	                playerVersion[2] = /[a-zA-Z]/.test(d) ? parseInt(d.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0;
	            }
	        }
	        else if (typeof win.ActiveXObject != UNDEF) {
	            try {
	                var a = new ActiveXObject(SHOCKWAVE_FLASH_AX);
	                if (a) { // a will return null when ActiveX is disabled
	                    d = a.GetVariable("$version");
	                    if (d) {
	                        ie = true; // cascaded feature detection for Internet Explorer
	                        d = d.split(" ")[1].split(",");
	                        playerVersion = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
	                    }
	                }
	            }
	            catch(e) {}
	        }
	        return { w3:w3cdom, pv:playerVersion, wk:webkit, ie:ie, win:windows, mac:mac };
	    }

	    var fls1=checkflashversion();
        var s="";
        if(fls1.pv[0]){
        	document.write('<h2>flash版本为:' + fls1.pv[0] + '.x</h2>');
        }else{
            document.write('<h2>没有安装flash</h2>');
        }

        // 需要更多信息,从return的数据中找
	</script>
</body>
</html>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值