Javascript Flash Detector | Newbie | | Join Date: Mar 2008
Posts: 1
| |
Hey everyone, i've been playing around with trying to get some scripts to work with detecting whether flash player is installed on your computer or not. I found a flash detection kit on the adobe site which had a client side detection method using javascript.
Basically what im trying to get it to do is if flash player is installed, use the style property display="none" to hide my static content, and if flash is not installed hide the flash content using display="none".
Here's my page. -
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
<html xmlns="http://www.w3.org/1999/xhtml">
-
<head>
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-
<title>Flash Test</title>
-
</head>
-
<script src="flash_check.js" language="javascript" type="text/javascript"></script>
-
<script language="JavaScript" type="text/javascript">
-
var requiredMajorVersion = 9;
-
var requiredMinorVersion = 0;
-
var requiredRevision = 0;
-
</script>
-
<body>
-
<script language="JavaScript" type="text/javascript">
-
var hasReqestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
-
if (hasReqestedVersion) {
-
document.getElementById("html").style.display="none";
-
} else {
-
document.getElementById("flash").style.display="none";
-
}
-
</script>
-
<div id="html">
-
This is the Static Content
-
<br />
-
</div>
-
<div id="flash">
-
This is the Flash Content
-
<br />
-
</div>
-
</body>
-
</html>
-
This is the js file that Adobe included with there detection pack. I haven't changed anything in this file. -
// Flash Player Version Detection - Rev 1.5
-
// Detect Client Browser type
-
// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved.
-
var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
-
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
-
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
-
-
function ControlVersion()
-
{
-
var version;
-
var axo;
-
var e;
-
-
// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
-
-
try {
-
// version will be set for 7.X or greater players
-
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
-
version = axo.GetVariable("$version");
-
} catch (e) {
-
}
-
-
if (!version)
-
{
-
try {
-
// version will be set for 6.X players only
-
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
-
-
// installed player is some revision of 6.0
-
// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
-
// so we have to be careful.
-
-
// default to the first public version
-
version = "WIN 6,0,21,0";
-
-
// throws if AllowScripAccess does not exist (introduced in 6.0r47)
-
axo.AllowScriptAccess = "always";
-
-
// safe to call for 6.0r47 or greater
-
version = axo.GetVariable("$version");
-
-
} catch (e) {
-
}
-
}
-
-
if (!version)
-
{
-
try {
-
// version will be set for 4.X or 5.X player
-
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
-
version = axo.GetVariable("$version");
-
} catch (e) {
-
}
-
}
-
-
if (!version)
-
{
-
try {
-
// version will be set for 3.X player
-
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
-
version = "WIN 3,0,18,0";
-
} catch (e) {
-
}
-
}
-
-
if (!version)
-
{
-
try {
-
// version will be set for 2.X player
-
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
-
version = "WIN 2,0,0,11";
-
} catch (e) {
-
version = -1;
-
}
-
}
-
-
return version;
-
}
-
-
// JavaScript helper required to detect Flash Player PlugIn version information
-
function GetSwfVer(){
-
// NS/Opera version >= 3 check for Flash plugin in plugin array
-
var flashVer = -1;
-
-
if (navigator.plugins != null && navigator.plugins.length > 0) {
-
if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
-
var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
-
var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
-
var descArray = flashDescription.split(" ");
-
var tempArrayMajor = descArray[2].split(".");
-
var versionMajor = tempArrayMajor[0];
-
var versionMinor = tempArrayMajor[1];
-
if ( descArray[3] != "" ) {
-
tempArrayMinor = descArray[3].split("r");
-
} else {
-
tempArrayMinor = descArray[4].split("r");
-
}
-
var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
-
var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
-
}
-
}
-
// MSN/WebTV 2.6 supports Flash 4
-
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
-
// WebTV 2.5 supports Flash 3
-
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
-
// older WebTV supports Flash 2
-
else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
-
else if ( isIE && isWin && !isOpera ) {
-
flashVer = ControlVersion();
-
}
-
return flashVer;
-
}
-
-
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
-
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
-
{
-
versionStr = GetSwfVer();
-
if (versionStr == -1 ) {
-
return false;
-
} else if (versionStr != 0) {
-
if(isIE && isWin && !isOpera) {
-
// Given "WIN 2,0,0,11"
-
tempArray = versionStr.split(" "); // ["WIN", "2,0,0,11"]
-
tempString = tempArray[1]; // "2,0,0,11"
-
versionArray = tempString.split(","); // ['2', '0', '0', '11']
-
} else {
-
versionArray = versionStr.split(".");
-
}
-
var versionMajor = versionArray[0];
-
var versionMinor = versionArray[1];
-
var versionRevision = versionArray[2];
-
-
// is the major.revision >= requested major.revision AND the minor version >= requested minor
-
if (versionMajor > parseFloat(reqMajorVer)) {
-
return true;
-
} else if (versionMajor == parseFloat(reqMajorVer)) {
-
if (versionMinor > parseFloat(reqMinorVer))
-
return true;
-
else if (versionMinor == parseFloat(reqMinorVer)) {
-
if (versionRevision >= parseFloat(reqRevision))
-
return true;
-
}
-
}
-
return false;
-
}
-
}
-
-
function AC_AddExtension(src, ext)
-
{
-
if (src.indexOf('?') != -1)
-
return src.replace(/\?/, ext+'?');
-
else
-
return src + ext;
-
}
-
-
function AC_Generateobj(objAttrs, params, embedAttrs)
-
{
-
var str = '';
-
if (isIE && isWin && !isOpera)
-
{
-
str += '<object ';
-
for (var i in objAttrs)
-
str += i + '="' + objAttrs[i] + '" ';
-
for (var i in params)
-
str += '><param name="' + i + '" value="' + params[i] + '" /> ';
-
str += '></object>';
-
} else {
-
str += '<embed ';
-
for (var i in embedAttrs)
-
str += i + '="' + embedAttrs[i] + '" ';
-
str += '> </embed>';
-
}
-
document.write(str);
-
-
}
-
-
function AC_FL_RunContent(){
-
var ret =
-
AC_GetArgs
-
( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
-
, "application/x-shockwave-flash"
-
);
-
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
-
}
-
-
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
-
var ret = new Object();
-
ret.embedAttrs = new Object();
-
ret.params = new Object();
-
ret.objAttrs = new Object();
-
for (var i=0; i < args.length; i=i+2){
-
var currArg = args[i].toLowerCase();
-
-
switch (currArg){
-
case "classid":
-
break;
-
case "pluginspage":
-
ret.embedAttrs[args[i]] = args[i+1];
-
break;
-
case "src":
-
case "movie":
-
args[i+1] = AC_AddExtension(args[i+1], ext);
-
ret.embedAttrs["src"] = args[i+1];
-
ret.params[srcParamName] = args[i+1];
-
break;
-
case "onafterupdate":
-
case "onbeforeupdate":
-
case "onblur":
-
case "oncellchange":
-
case "onclick":
-
case "ondblClick":
-
case "ondrag":
-
case "ondragend":
-
case "ondragenter":
-
case "ondragleave":
-
case "ondragover":
-
case "ondrop":
-
case "onfinish":
-
case "onfocus":
-
case "onhelp":
-
case "onmousedown":
-
case "onmouseup":
-
case "onmouseover":
-
case "onmousemove":
-
case "onmouseout":
-
case "onkeypress":
-
case "onkeydown":
-
case "onkeyup":
-
case "onload":
-
case "onlosecapture":
-
case "onpropertychange":
-
case "onreadystatechange":
-
case "onrowsdelete":
-
case "onrowenter":
-
case "onrowexit":
-
case "onrowsinserted":
-
case "onstart":
-
case "onscroll":
-
case "onbeforeeditfocus":
-
case "onactivate":
-
case "onbeforedeactivate":
-
case "ondeactivate":
-
case "type":
-
case "codebase":
-
case "id":
-
ret.objAttrs[args[i]] = args[i+1];
-
break;
-
case "width":
-
case "height":
-
case "align":
-
case "vspace":
-
case "hspace":
-
case "class":
-
case "title":
-
case "accesskey":
-
case "name":
-
case "tabindex":
-
ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
-
break;
-
default:
-
ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
-
}
-
}
-
ret.objAttrs["classid"] = classid;
-
if (mimeType) ret.embedAttrs["type"] = mimeType;
-
return ret;
-
}
-
Any help would be appreaciated. :)
|  | Site Moderator | | Join Date: Nov 2006 Location: UK
Posts: 14,581
| | | re: Javascript Flash Detector
Check that the Adobe detection script gives the correct version number, etc. or if uninstalled, what output is given. Based on that, you can use the script to show/hide content.
|  | Similar JavaScript / Ajax / DHTML bytes | | | /bytes/about
We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights.
Get the best answers to your questions from over 226,414 network members.
|