commit
58f4dfdb2e
@ -1,269 +0,0 @@ |
||||
// 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": |
||||
ret.objAttrs[args[i]] = args[i+1]; |
||||
break; |
||||
case "id": |
||||
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; |
||||
} |
||||
|
||||
|
Loading…
Reference in new issue