Avatar billede sorte_slyngel Nybegynder
19. oktober 2001 - 15:30 Der er 1 løsning

flash/html detector

Jeg har et problem i mit detect flash script.

Det virker perfect hvis jeg har flash installeret, menhvis jeg ikke har flashinstalleret, så henviser den ikke til min index2.html, men spørger brugeren om han vil installere flash. Det er ikke meningen. Han skal direkte over på index2.html.

Er der nogle der kan hjælpe mig med denne her.
Her er koderne:

<html>
<head>
<title>redirekt</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<script language=\"JavaScript\">
<!--
function detectflash()
{
    flashpage  = \"flashpage.html\"
    nonflashpage    = \"index2.html\"
    cantdetectpage    = \"dontknow.html\"

    noautoinstall = \"\"

    if(navigator.appName == \"Microsoft Internet Explorer\" &&
        (navigator.appVersion.indexOf(\"Mac\") != -1 ||
        navigator.appVersion.indexOf(\"3.1\") != -1)){
            noautoinstall = \"true\";
    }

    if (navigator.appName == \"Microsoft Internet Explorer\" && noautoinstall != \"true\")
    {
        window.location=flashpage;
    }
    else if(navigator.plugins)
    {
        if(navigator.plugins[\"Shockwave Flash\"] || navigator.plugins[\"Shockwave Flash 2.0\"])
        {
            window.location=flashpage;
        }
        else
        {
            window.location=nonflashpage;
        }
    }
    else
    {
    window.location=cantdetectpage;
    }
}
// -->
</script>
</head>

<body onload=\"detectflash();\" bgcolor=\"#FFFFFF\" text=\"#000000\" background=\"gifs/b2.gif\">
</body>
</html>
Avatar billede bobbedude Nybegynder
19. oktober 2001 - 18:07 #1
Prøv den her

<HTML>
<HEAD><TITLE>FLASH DETECT</TITLE>

<!-- prevent caching in netscape. very important cause netscape tends to mangle cached code -->
<META HTTP-EQUIV=\"expires\" CONTENT=\"0\">
<META HTTP-EQUIV=\"Pragma\" CONTENT=\"no-cache\">



<SCRIPT LANGUAGE=\"JavaScript\" type=\"text/javascript\">
<!--
// moock fpi [f.lash p.layer i.nspector]
// version: 1.3.4
// written by colin moock
// code maintained at: http://www.moock.org/webdesign/flash/detection/moockfpi/
// unrestricted use permission granted for:
//         artists, educational institutions and non-profit organizations.
// restricted use permission granted for commercial purposes under linkware agreement terms set out
//         at the above url...



// #############################################
// these are the user defined globals
// modify the following variables to customize the inspection behaviour

var requiredVersion = 4;            // version the user needs to view site (max is 5, min is 2)
var useRedirect = true;             // \"true\" loads new flash or non-flash page into browser
                                    // \"false\" embeds movie or alternate html code into current page

// set next three vars if useRedirect is true...
var flashPage = \"movie.html\"        // the location of the flash movie page
var noFlashPage = \"noflash.html\"    // send user here if they don\'t have the plugin or we can\'t detect it
var upgradePage = \"upgrade.html\"    // send user here if we detect an old plugin
// #############################################



// *************
// everything below this point is internal until after the body tag
// do not modify!
// *************

// system globals
var flash2Installed = false;        // boolean. true if flash 2 is installed
var flash3Installed = false;        // boolean. true if flash 3 is installed
var flash4Installed = false;        // boolean. true if flash 4 is installed
var flash5Installed = false;        // boolean. true if flash 5 is installed
var maxVersion = 5;                    // highest version we can actually detect
var actualVersion = 0;                // version the user really has
var hasRightVersion = false;        // boolean. true if it\'s safe to embed the flash movie in the page
var jsVersion = 1.0;                // the version of javascript supported

// -->
</SCRIPT>

<SCRIPT LANGUAGE=\"JavaScript1.1\" type=\"text/javascript\">
<!--

// check the browser...we\'re looking for ie/win
var isIE = (navigator.appVersion.indexOf(\"MSIE\") != -1) ? true : false;        // true if we\'re on ie
var isWin = (navigator.appVersion.indexOf(\"Windows\") != -1) ? true : false; // true if we\'re on windows

// this is a js1.1 code block, so make note that js1.1 is supported.
jsVersion = 1.1;

// write vbscript detection if we\'re not on mac.
if(isIE && isWin){ // don\'t write vbscript tags on anything but ie win
    document.write(\'<SCR\' + \'IPT LANGUAGE=VBScript\\> \\n\');
    document.write(\'on error resume next \\n\');
    document.write(\'flash2Installed = (IsObject(CreateObject(\"ShockwaveFlash.ShockwaveFlash.2\"))) \\n\');
    document.write(\'flash3Installed = (IsObject(CreateObject(\"ShockwaveFlash.ShockwaveFlash.3\"))) \\n\');
    document.write(\'flash4Installed = (IsObject(CreateObject(\"ShockwaveFlash.ShockwaveFlash.4\"))) \\n\');
    document.write(\'flash5Installed = (IsObject(CreateObject(\"ShockwaveFlash.ShockwaveFlash.5\"))) \\n\');   
    document.write(\'</SCR\' + \'IPT\\> \\n\'); // break up end tag so it doesn\'t end our script
}
// -->
</SCRIPT>

<SCRIPT LANGUAGE=\"JavaScript\" type=\"text/javascript\">
<!--

// next comes the standard javascript detection that uses the navigator.plugins array
// we pack the detector into a function so it loads before we run it

function detectFlash(){   

    if (navigator.plugins){                                // does navigator.plugins exist?
        if (navigator.plugins[\"Shockwave Flash 2.0\"]     // yes>> then is Flash 2
        || navigator.plugins[\"Shockwave Flash\"]){        // or flash 3+ installed?

            // set convenient references to flash 2 and the plugin description
            var isVersion2 = navigator.plugins[\"Shockwave Flash 2.0\"] ? \" 2.0\" : \"\";
            var flashDescription = navigator.plugins[\"Shockwave Flash\" + isVersion2].description;
            // a flash plugin-description looks like this: Shockwave Flash 4.0 r5
            // so we can get the major version by grabbing the character before the period
            // note that we don\'t bother with minor version detection. do that in your movie with $version
            var flashVersion = parseInt(flashDescription.charAt(flashDescription.indexOf(\".\") - 1));

            // we know the version, now set appropriate version flags
            flash2Installed = flashVersion == 2;       
            flash3Installed = flashVersion == 3;
            flash4Installed = flashVersion == 4;
            flash5Installed = flashVersion == 5;
        }
    }
   
    // loop through all versions we\'re checking, and set actualVersion to highest detected version
    for (var i = 2; i <= maxVersion; i++) {   
        if (eval(\"flash\" + i + \"Installed\") == true) actualVersion = i;
    }
    // if we\'re on webtv, the version supported is 2 (pre-summer2000, or 3, post-summer2000)
    // note that we don\'t bother sniffing varieties of webtv. you could if you were sadistic...
    if(navigator.userAgent.indexOf(\"WebTV\") != -1) actualVersion = 2;   
   
    // uncomment next line to display flash version during testing
    // alert(\"version detected: \" + actualVersion);


    // we\'re finished getting the version. time to take the appropriate action

    if (actualVersion >= requiredVersion) {         // user has a new enough version
        hasRightVersion = true;                        // flag: it\'s okay to write out the object/embed tags later

        if (useRedirect) {                            // if the redirection option is on, load the flash page
            if(jsVersion > 1.0) {                    // need javascript1.1 to do location.replace
                window.location.replace(flashPage);    // use replace() so we don\'t break the back button
            } else {
                window.location = flashPage;        // otherwise, use .location
            }
        }
    } else {    // user doesn\'t have a new enough version.
   
        if (useRedirect) {        // if the redirection option is on, load the appropriate alternate page
            if(jsVersion > 1.0) {    // need javascript1.1 to do location.replace
                window.location.replace((actualVersion >= 2) ? upgradePage : noFlashPage);
            } else {
                window.location = (actualVersion >= 2) ? upgradePage : noFlashPage;
            }
        }
    }
}


detectFlash();    // call our detector now that it\'s safely loaded.   
   
// -->
</SCRIPT>





</HEAD>

<BODY BGCOLOR=\"#FFFFFF\">

<!--############################################################
    IF YOU\'RE USING PAGE REDIRECTION, FOLLOW THESE INSTRUCTIONS
    1) put some content here to tell the user what\'s going on
    while they wait. something like:
    \"detecting macromedia flash, please wait...\"

    2) delete everything below this point up to
    the end body tag </BODY>
    ############################################################-->



   
   
<!--############################################################################
    IF YOU\'RE USING CONTENT SWAPPING, ADJUST THE SCRIPT BELOW TO SUIT YOUR NEEDS
    ############################################################################-->

<SCRIPT LANGUAGE=\"JavaScript\" type=\"text/javascript\">
<!--
// in this section we set up the content to be placed dynamically on the page
// customize movie tags and alternate html content below

if (!useRedirect) {        // if dynamic embedding is turned on
    if(hasRightVersion) {    // if we\'ve detected an acceptable version
        var oeTags = \'<OBJECT CLASSID=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"\'
        + \'WIDTH=\"550\" HEIGHT=\"400\"\'
        + \'CODEBASE=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab\">\'
        + \'<PARAM NAME=\"MOVIE\" VALUE=\"movie.swf\">\'
        + \'<PARAM NAME=\"PLAY\" VALUE=\"true\">\'
        + \'<PARAM NAME=\"LOOP\" VALUE=\"false\">\'
        + \'<PARAM NAME=\"QUALITY\" VALUE=\"high\">\'
        + \'<PARAM NAME=\"MENU\" VALUE=\"false\">\'
        + \'<EMBED SRC=\"movie.swf\"\'
        + \'WIDTH=\"550\" HEIGHT=\"400\"\'
        + \'PLAY=\"true\"\'
        + \'LOOP=\"false\"\'
        + \'QUALITY=\"high\"\'
        + \'MENU=\"false\"\'
        + \'TYPE=\"application/x-shockwave-flash\"\'
        + \'PLUGINSPAGE=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\">\'
        + \'</EMBED>\'
        + \'</OBJECT>\';

        document.write(oeTags);     // embed the flash movie
    } else {    // flash is too old or we can\'t detect the plugin
        var alternateContent = \'<IMG SRC=\"altimage.gif\" HEIGHT=\"400\" WIDTH=\"550\">\'    // height, width required!
            + \'<BR>any desired alternate html code goes here\';

        document.write(alternateContent);    // insert non-flash content
    }
}

// -->
</SCRIPT>

<NOSCRIPT>
<!--############################################################################
    HERE WE PROVIDE ALTERNATE CONTENT FOR NON-SCRIPT-SUPPORTING BROWSERS
    OR BROWSERS THAT HAVE THEIR SCRIPTING TURNED OFF...
    ############################################################################

    IF YOU ARE USING PAGE REDIRECT, A META REFRESH GOES HERE. FOR EXAMPLE:
    <META HTTP-EQUIV=\"Refresh\" CONTENT=\"10;URL=noflash.html\">
   
    IF YOU ARE USING CONTENT SWAPPING, THE VALUE OF THE alternateContent VARIABLE
    SHOULD BE REPEATED HERE. FOR EXAMPLE:
    <IMG SRC=\"altimage.gif\" HEIGHT=\"400\" WIDTH=\"550\">
   
    -->
</NOSCRIPT>


</BODY>
</HTML>
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
Kurser inden for grundlæggende programmering

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