Avatar billede exclusive Nybegynder
16. maj 2006 - 16:24 Der er 4 kommentarer og
1 løsning

.js Flash detect som skriver "Flash 8.0 - installeret" ellers

Hej JavaScript eksperter!
Jeg mangler en flash detection som ser om brugeren har flash 8.0 installeret...
hvis flash plugin 8.0 er installeret skal den:
document.writeln('' + SOMETHING + '<br>'); skrive "Flash 8.0 - installeret" og hvis flash 8.0 ikke er installeret skal den skrive "Du skal installere Flash 8.0"
Avatar billede exclusive Nybegynder
16. maj 2006 - 17:28 #1
den skal forresten båede virke i IE og Mozilla Firefox ;o)
Avatar billede exclusive Nybegynder
17. maj 2006 - 16:09 #2
det kræver jo faktisk bare en omskrivning af dette script, men fatter hat af JavaScript... outputtet skal stadig være som beskrevet ovenfor, at den skal skrive "Flash 8.0 - installeret" og hvis flash 8.0 ikke er installeret skal den skrive "Du skal installere Flash 8.0" og så skal detectionen af alle de andre plugins meget gerne ryddes af vejen...
(WOOOW, jeg har selv fået den til at detecte 'ShockwaveFlash.ShockwaveFlash.8', altså version 8...haha): 

<html>
<head>

<script language="JavaScript">
<!--
// initialize a variable to test for JavaScript 1.1.
// which is necessary for the window.location.replace method
var javascriptVersion1_1 = false;
// -->
</script>


<script language="JavaScript1.1">
<!--
javascriptVersion1_1 = true;
// -->
</script>


<script language="JavaScript">
<!--

// initialize global variables
var detectableWithVB = false;
var pluginFound = false;


function goURL(daURL) {
    // if the browser can do it, use replace to preserve back button
    if(javascriptVersion1_1) {
    window.location.replace(daURL);
    } else {
    window.location = daURL;
    }
    return;
}

function redirectCheck(pluginFound, redirectURL, redirectIfFound) {
    // check for redirection
    if( redirectURL && ((pluginFound && redirectIfFound) ||
    (!pluginFound && !redirectIfFound)) ) {
    // go away
    goURL(redirectURL);
    return pluginFound;
    } else {
    // stay here and return result of plugin detection
    return pluginFound;
    }   
}

function canDetectPlugins() {
    if( detectableWithVB || (navigator.plugins && navigator.plugins.length > 0) ) {
    return true;
    } else {
    return false;
    }
}

function detectFlash(redirectURL, redirectIfFound) {
    pluginFound = detectPlugin('Shockwave','Flash');
    // if not found, try to detect with VisualBasic
    if(!pluginFound && detectableWithVB) {
    pluginFound = detectActiveXControl('ShockwaveFlash.ShockwaveFlash.8');
    }
    // check for redirection
    return redirectCheck(pluginFound, redirectURL, redirectIfFound);
}

function detectDirector(redirectURL, redirectIfFound) {
    pluginFound = detectPlugin('Shockwave','Director');
    // if not found, try to detect with VisualBasic
    if(!pluginFound && detectableWithVB) {
    pluginFound = detectActiveXControl('SWCtl.SWCtl.1');
    }
    // check for redirection
    return redirectCheck(pluginFound, redirectURL, redirectIfFound);
}

function detectQuickTime(redirectURL, redirectIfFound) {
    pluginFound = detectPlugin('QuickTime');
    // if not found, try to detect with VisualBasic
    if(!pluginFound && detectableWithVB) {
    pluginFound = detectQuickTimeActiveXControl();
    }
    return redirectCheck(pluginFound, redirectURL, redirectIfFound);
}

function detectReal(redirectURL, redirectIfFound) {
    pluginFound = detectPlugin('RealPlayer');
    // if not found, try to detect with VisualBasic
    if(!pluginFound && detectableWithVB) {
    pluginFound = (detectActiveXControl('rmocx.RealPlayer G2 Control') ||
              detectActiveXControl('RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)') ||
              detectActiveXControl('RealVideo.RealVideo(tm) ActiveX Control (32-bit)'));
    }   
    return redirectCheck(pluginFound, redirectURL, redirectIfFound);
}

function detectWindowsMedia(redirectURL, redirectIfFound) {
    pluginFound = detectPlugin('Windows Media');
    // if not found, try to detect with VisualBasic
    if(!pluginFound && detectableWithVB) {
    pluginFound = detectActiveXControl('MediaPlayer.MediaPlayer.1');
    }
    return redirectCheck(pluginFound, redirectURL, redirectIfFound);
}

function detectPlugin() {
    // allow for multiple checks in a single pass
    var daPlugins = detectPlugin.arguments;
    // consider pluginFound to be false until proven true
    var pluginFound = false;
    // if plugins array is there and not fake
    if (navigator.plugins && navigator.plugins.length > 0) {
    var pluginsArrayLength = navigator.plugins.length;
    // for each plugin...
    for (pluginsArrayCounter=0; pluginsArrayCounter < pluginsArrayLength; pluginsArrayCounter++ ) {
        // loop through all desired names and check each against the current plugin name
        var numFound = 0;
        for(namesCounter=0; namesCounter < daPlugins.length; namesCounter++) {
        // if desired plugin name is found in either plugin name or description
        if( (navigator.plugins[pluginsArrayCounter].name.indexOf(daPlugins[namesCounter]) >= 0) ||
            (navigator.plugins[pluginsArrayCounter].description.indexOf(daPlugins[namesCounter]) >= 0) ) {
            // this name was found
            numFound++;
        } 
        }
        // now that we have checked all the required names against this one plugin,
        // if the number we found matches the total number provided then we were successful
        if(numFound == daPlugins.length) {
        pluginFound = true;
        // if we've found the plugin, we can stop looking through at the rest of the plugins
        break;
        }
    }
    }
    return pluginFound;
} // detectPlugin

// Here we write out the VBScript block for MSIE Windows
if ((navigator.userAgent.indexOf('MSIE') != -1) && (navigator.userAgent.indexOf('Win') != -1)) {
    document.writeln('<script language="VBscript">');

    document.writeln('\'do a one-time test for a version of VBScript that can handle this code');
    document.writeln('detectableWithVB = False');
    document.writeln('If ScriptEngineMajorVersion >= 2 then');
    document.writeln('  detectableWithVB = True');
    document.writeln('End If');

    document.writeln('\'this next function will detect most plugins');
    document.writeln('Function detectActiveXControl(activeXControlName)');
    document.writeln('  on error resume next');
    document.writeln('  detectActiveXControl = False');
    document.writeln('  If detectableWithVB Then');
    document.writeln('    detectActiveXControl = IsObject(CreateObject(activeXControlName))');
    document.writeln('  End If');
    document.writeln('End Function');

    document.writeln('\'and the following function handles QuickTime');
    document.writeln('Function detectQuickTimeActiveXControl()');
    document.writeln('  on error resume next');
    document.writeln('  detectQuickTimeActiveXControl = False');
    document.writeln('  If detectableWithVB Then');
    document.writeln('    detectQuickTimeActiveXControl = False');
    document.writeln('    hasQuickTimeChecker = false');
    document.writeln('    Set hasQuickTimeChecker = CreateObject("QuickTimeCheckObject.QuickTimeCheck.1")');
    document.writeln('    If IsObject(hasQuickTimeChecker) Then');
    document.writeln('      If hasQuickTimeChecker.IsQuickTimeAvailable(0) Then ');
    document.writeln('        detectQuickTimeActiveXControl = True');
    document.writeln('      End If');
    document.writeln('    End If');
    document.writeln('  End If');
    document.writeln('End Function');

    document.writeln('</scr' + 'ipt>');
}

// -->
</script>


</head>

<body>

<script language="JavaScript">

if(canDetectPlugins()) {
    document.write('<b>Supports Shockwave for Director:</b> ' + detectDirector() + '<br>' +
          '<b>Flash 8.0 installeret:</b> ' + detectFlash() + '<br>' +
          '<b>Supports QuickTime:</b> ' + detectQuickTime() + '<br>' +
          '<b>Supports RealPlayer:</b> ' + detectReal() + '<br>' +
          '<b>Supports Windows Media Player:</b> ' + detectWindowsMedia());
}
</script>

<noscript>
Your browser doesn't support JavaScript, so we can't check for plugins.
</noscript>


</body>
</html>
Avatar billede exclusive Nybegynder
19. maj 2006 - 11:58 #3
på vejne af spm/710420
er denne opgave hævet til 120 points!
Avatar billede exclusive Nybegynder
23. maj 2006 - 14:40 #4
TA DÈN! -Lukker!

Fandt ud af at jeg kunne bruge nedestående script til at detecte flash versionen og få den vist på min splash screen sammen med SWFobject fra http://www.osflash.org/swfobject som jeg tilmed samtidig bruger til at embede min flash movies med, for at sikre mig imod den nye irreterende opdatering til IE fra Microsoft!

<html>
<head>
<script type="text/javascript" src="swfobject.js"></script>
</head>
<body>
<div align="left" id="flashPlayerInfo">
<p>&nbsp;Ikke fundet! <a href="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">Hent.</a>
<script type="text/javascript">
// <![CDATA[

var version = deconcept.SWFObjectUtil.getPlayerVersion();
document.getElementById('flashPlayerInfo').innerHTML = "blah: ";// + version;
if (document.getElementById && (version['major'] > 0))
{
document.getElementById('flashPlayerInfo').innerHTML = "&nbsp;Player "+ version['major'] +"."+ version['minor'] +"."+ version['rev'] +" fundet.";
}
// ]]>
</script>
</p>
</div>
</body>
</html>
Avatar billede olebole Juniormester
06. november 2006 - 08:41 #5
<ole>

- lidt pudsigt at blande HTML og XHTML sammen ... specielt da scriptet slet ikke kan anvendes under XHTML  :)

/mvh
</bole>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester