rabid_zombie
rabid_zombie

Reputation: 992

Detect Flash version using JavaScript

How can I detect which Flash version a browser is using with JavaScript?

Upvotes: 3

Views: 9831

Answers (2)

dnaumenko
dnaumenko

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

trejder
trejder

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

Related Questions