在网上找了好久,几乎都是复制的同一份代码,
在没装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>