66 lines
2.2 KiB
JavaScript
66 lines
2.2 KiB
JavaScript
|
|
// Flash Version Detector v1.2.1
|
||
|
|
// documentation: http://www.dithered.com/javascript/flash_detect/index.html
|
||
|
|
// license: http://creativecommons.org/licenses/by/1.0/
|
||
|
|
// code by Chris Nott (chris[at]dithered[dot]com)
|
||
|
|
// with VBScript code from Alastair Hamilton (now somewhat modified)
|
||
|
|
|
||
|
|
|
||
|
|
function isDefined(property) {
|
||
|
|
return (typeof property != 'undefined');
|
||
|
|
}
|
||
|
|
|
||
|
|
var flashVersion = 0;
|
||
|
|
function getFlashVersion() {
|
||
|
|
var latestFlashVersion = 8;
|
||
|
|
var agent = navigator.userAgent.toLowerCase();
|
||
|
|
|
||
|
|
// NS3 needs flashVersion to be a local variable
|
||
|
|
if (agent.indexOf("mozilla/3") != -1 && agent.indexOf("msie") == -1) {
|
||
|
|
flashVersion = 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
// NS3+, Opera3+, IE5+ Mac (support plugin array): check for Flash plugin in plugin array
|
||
|
|
if (navigator.plugins != null && navigator.plugins.length > 0) {
|
||
|
|
var flashPlugin = navigator.plugins['Shockwave Flash'];
|
||
|
|
if (typeof flashPlugin == 'object') {
|
||
|
|
for (var i = latestFlashVersion; i >= 3; i--) {
|
||
|
|
if (flashPlugin.description.indexOf(i + '.') != -1) {
|
||
|
|
flashVersion = i;
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// IE4+ Win32: attempt to create an ActiveX object using VBScript
|
||
|
|
else if (agent.indexOf("msie") != -1 && parseInt(navigator.appVersion) >= 4 && agent.indexOf("win")!=-1 && agent.indexOf("16bit")==-1) {
|
||
|
|
var doc = '<scr' + 'ipt language="VBScript"\> \n';
|
||
|
|
doc += 'On Error Resume Next \n';
|
||
|
|
doc += 'Dim obFlash \n';
|
||
|
|
doc += 'For i = ' + latestFlashVersion + ' To 3 Step -1 \n';
|
||
|
|
doc += ' Set obFlash = CreateObject("ShockwaveFlash.ShockwaveFlash." & i) \n';
|
||
|
|
doc += ' If IsObject(obFlash) Then \n';
|
||
|
|
doc += ' flashVersion = i \n';
|
||
|
|
doc += ' Exit For \n';
|
||
|
|
doc += ' End If \n';
|
||
|
|
doc += 'Next \n';
|
||
|
|
doc += '</scr' + 'ipt\> \n';
|
||
|
|
document.write(doc);
|
||
|
|
}
|
||
|
|
|
||
|
|
// WebTV 2.5 supports flash 3
|
||
|
|
else if (agent.indexOf("webtv/2.5") != -1) flashVersion = 3;
|
||
|
|
|
||
|
|
// older WebTV supports flash 2
|
||
|
|
else if (agent.indexOf("webtv") != -1) flashVersion = 2;
|
||
|
|
|
||
|
|
// Can't detect in all other cases
|
||
|
|
else {
|
||
|
|
flashVersion = flashVersion_DONTKNOW;
|
||
|
|
}
|
||
|
|
|
||
|
|
return flashVersion;
|
||
|
|
}
|
||
|
|
|
||
|
|
flashVersion_DONTKNOW = -1;
|