Reputation: 992
How can I detect which Flash version a browser is using with JavaScript?
Upvotes: 3
Views: 9831
Reputation: 591
There is a lot of going on in JavaScript Flash Detection Library, but it seems it can be simplified to something like this:
getFlashVer: function () {
var activeXObj, plugins, plugin, result;
if (navigator.plugins && navigator.plugins.length > 0) {
plugins = navigator.plugins;
for (var i = 0; i < plugins.length && !result; i++) {
plugin = plugins[i];
if (plugin.name.indexOf("Shockwave Flash") > -1) {
result = plugin.description.split("Shockwave Flash ")[1];
}
}
} else {
plugin = "ShockwaveFlash.ShockwaveFlash";
try {
activeXObj = new ActiveXObject(plugin + ".7"), result = activeXObj.GetVariable("$version")
} catch (e) {}
if (!result) try {
activeXObj = new ActiveXObject(plugin + ".6"), result = "WIN 6,0,21,0", activeXObj.AllowScriptAccess = "always", result = activeXObj.GetVariable("$version")
} catch (e) {}
if (!result) try {
activeXObj = new ActiveXObject(plugin), result = activeXObj.GetVariable("$version")
} catch (e) {}
result && (result = result.split(" ")[1].split(","), result = result[0] + "." + result[1] + " r" + result[2])
}
return result ? result : "-";
}
Upvotes: 2
Reputation: 17495
There is a nice, lightweight JavaScript Flash Detection Library, which is smaller and more convenient than using SWFObject. You should consider it, if you only want to check if Flash is installed, but you're using different method of playing FLV
movies.
SWFObject should be considered only, if you're also using it for playing Flash movies. For just checking, if Flash is installed, it is to heavy in my opinion.
Upvotes: 7