Flash-Unterstützung prüfen

Problem

Möchte man herausfinden, ob das Flash-Plugin im Browser des Users aktiv ist, kann man dies bei standardkonformen Browsern über die Eigenschaft navigator.plugins herausfinden. Der Internet Explorer unterstützt dies nicht. Sucht man im Internet nach einer Lösung für den Internet Explorer, findet man zumeist Skripte, die ein <script>-Tag herausschreiben, in dem mittels VBScript versucht wird, ein Flash-Objekt zu erzeugen. Falls dies gelingt, unterstützt der Internet Explorer Flash, andernfalls nicht. Es ist also sehr verworren und umständlich.

Lösung

Eine elegantere Lösung, die auf VBScript verzichtet, habe ich in der Featureblend JavaScript Flash Detection Library gefunden, die mich zu folgendem kleinen Skript inspiriert hat.

let flashSupported = false;
if (navigator.plugins && navigator.plugins.length > 0) {
    const type = 'application/x-shockwave-flash';
    const mimeTypes = navigator.mimeTypes;
    if (mimeTypes && mimeTypes[type] && mimeTypes[type].enabledPlugin && mimeTypes[type].enabledPlugin.description) {
        flashSupported = true;
    }
}
else if (navigator.appVersion.indexOf('Mac') == -1 && window.execScript) {
    try {
        new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
        flashSupported = true;
    } catch(error) {
        flashSupported = false;
    }
}

Demo ansehen

Mehr Infos