Avatar billede jakwag Nybegynder
02. oktober 2003 - 20:13 Der er 12 kommentarer og
2 løsninger

check for flash

Hej

Har søgt lidt rundt efter scripts der kan detecte om brugeren har den rigtige version af flash. Indtil videre har jeg kun fundet meget lange scripts.

Det jeg har brug for er et super simpelt script, som checker om brugeren har flash player 7.

Hvis ja: gør intet.

Hvis nej: gå til www.etellerandet.dk

det skal IKKE laves i flash, men i js eller noget andet.

: ) Jakob
Avatar billede brianovitch Nybegynder
02. oktober 2003 - 20:27 #1
Hej Jacob

Jeg har en version som du gerne må få. Den kan det hele. Gå direkte til siden hvis du har flash gå uden om hvis du ikke har flash eller spørge om du vil opdatere hvis du har en gammel version. Skriv din mail så kan jeg sende den.


Brian
Avatar billede jakwag Nybegynder
02. oktober 2003 - 20:28 #2
kan du ikke bare copy/paste scriptet her?

Er det javascript?
Avatar billede brianovitch Nybegynder
02. oktober 2003 - 20:29 #3
Hej Jakob igen

Det var bare et svar.

Brian
Avatar billede brianovitch Nybegynder
02. oktober 2003 - 20:33 #4
jo jeg prøver lige, men det skal ryddes lidt op. Jeg har nemlig ikke brugt den selv:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>
<HEAD><TITLE>moock flash player inspector :: v1.3.5</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.5
// written by colin moock
// code maintained at: http://www.moock.org/webdesign/flash/detection/moockfpi/
// terms of use posted at: http://www.moock.org/terms/



// =============================================================================
// These are the user defined globals.
// Modify the following variables to customize the inspection behaviour.

var requiredVersion = 5;  // Version the user needs to view site (max 6, min 2)
var useRedirect = true;    // Flag indicating whether or not to load a separate
                          // page based on detection results. Set to true to
                          // load a separate page. Set to false to embed the
                          // movie or alternate html directly into this page.
                         
// Only set next three vars if useRedirect is true...
var flashPage = "movie.html"      // The location of the flash movie page
var noFlashPage = "noflash.html"  // Page displayed if the user doesn't have the
                                  // plugin or we can't detect it.
var upgradePage = "upgrade.html"  // Page displayed if we detect an old plugin
// =============================================================================



// *************
// Everything below this point is internal until after the BODY tag.
// Do not modify! Proceed to the BODY tag for further instructions.
// *************

// 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 flash6Installed = false;    // boolean. true if flash 6 is installed
var maxVersion = 6;            // 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 on ie win. IE on Windows doesn't support regular
// JavaScript plugins array detection.
if(isIE && isWin){
  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('flash6Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.6"))) \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 exists...
  if (navigator.plugins) {
    // ...then check for flash 2 or flash 3+.
    if (navigator.plugins["Shockwave Flash 2.0"]
        || navigator.plugins["Shockwave Flash"]) {

      // Some version of Flash was found. Time to figure out which.
     
      // 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;

      // DEBUGGING: uncomment next line to see the actual description.
      // alert("Flash plugin description: " + flashDescription);
     
      // A flash plugin-description looks like this: Shockwave Flash 4.0 r5
      // 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 or getVersion().
      var flashVersion = parseInt(flashDescription.charAt(flashDescription.indexOf(".") - 1));
   
      // We found the version, now set appropriate version flags. Make sure
      // to use >= on the highest version so we don't prevent future version
      // users from entering the site.
      flash2Installed = flashVersion == 2;   
      flash3Installed = flashVersion == 3;
      flash4Installed = flashVersion == 4;
      flash5Installed = flashVersion == 5;
      flash6Installed = flashVersion >= 6;
    }
  }
 
  // 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 = 3; 
 
  // DEBUGGING: uncomment next line to display flash version
  // alert("version detected: " + actualVersion);


  // We're finished getting the version on all browsers that support detection.
  // Time to take the appropriate action.

  // If the user has a new enough version...
  if (actualVersion >= requiredVersion) {
    // ...then we'll redirect them to the flash page, unless we've
    // been told not to redirect.
    if (useRedirect) {
      // Need javascript1.1 to do location.replace
      if(jsVersion > 1.0) {
        // It's safe to use replace(). Good...we won't break the back button.
        window.location.replace(flashPage); 
      } else {
        // JavaScript version is too old, so use .location to load
        // the flash page.
        window.location = flashPage;
      }
    }
   
    // If we got here, we didn't redirect. So we make a note that we should
    // write out the object/embed tags later.
    hasRightVersion = true;               
  } else { 
    // The user doesn't have a new enough version.
    // If the redirection option is on, load the appropriate alternate page.
    if (useRedirect) {
      // Do the same .replace() call only if js1.1+ is available.
      if(jsVersion > 1.0) {
        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 NOSCRIPT start tag: <NOSCRIPT>
  ========================================================================== -->



 
 
<!-- ===========================================================================
  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
    // NOTE: height, width are required!
    var alternateContent = '<IMG SRC="altimage.gif" HEIGHT="400" WIDTH="550">'
      + '<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. DELETE EVERYTHING
  BETWEEN THE NOSCRIPT TAGS EXCEPT THE FOLLOWING META TAG:
  <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. DELETE EVERYTHING BETWEEN THE NOSCRIPT TAGS
  EXCEPT YOUR alternateContent HTML. FOR EXAMPLE:
  <IMG SRC="altimage.gif" HEIGHT="400" WIDTH="550">
 
  -->
</NOSCRIPT>


</BODY>
</HTML>
Avatar billede jakwag Nybegynder
02. oktober 2003 - 20:34 #5
jeg er ikke ude efter et script der kan det hele. Kun et simpelt script der ligepræcis kan det jeg har beskrevet i spm'et.
Avatar billede jakwag Nybegynder
02. oktober 2003 - 20:35 #6
haha, tak.

Det er sikkert fedt. men læs lige linien igen:

"Det jeg har brug for er et super simpelt script, som checker om brugeren har flash player 7."
Avatar billede brianovitch Nybegynder
02. oktober 2003 - 20:40 #7
Jeg er ikke en script haj... mere en kopist. Det script ckecker for flash, men jeg kan ikke gennemskue om den checker for hvilken version det er:

<script language="JavaScript">
<!--
function MM_checkPlugin(plgIn, theURL, altURL, autoGo) { //v4.0
  var ok=false; document.MM_returnValue = false;
  with (navigator) if (appName.indexOf('Microsoft')==-1 || (plugins && plugins.length)) {
    ok=(plugins && plugins[plgIn]);
  } else if (appVersion.indexOf('3.1')==-1) { //not Netscape or Win3.1
    if (plgIn.indexOf("Flash")!=-1 && window.MM_flash!=null) ok=window.MM_flash;
    else if (plgIn.indexOf("Director")!=-1 && window.MM_dir!=null) ok=window.MM_dir;
    else ok=autoGo; }
  if (!ok) theURL=altURL; if (theURL) window.location=theURL;
}
//-->
</script>

DETTE SKAL VÆRE TIL BODY'EN

<body bgcolor="#142c4d" leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" scroll="no" onLoad="MM_checkPlugin('Shockwave Flash','','http://www.basic-elements.dk/index2.html',false);return document.MM_returnValue">

Er det ok tror du?

Brian
Avatar billede barklund Nybegynder
03. oktober 2003 - 00:56 #8
Ovenstående script fra Moock's FPI (Flash Player Investigation) tjekker kun til og med version 6. Jeg har et "forholdvist" simpelt script - men det er nødt til at være lidt komplekst for at virke i alle browsere:

<head>
<SCRIPT LANGUAGE="JavaScript" type="text/javascript">
<!--
var requiredVersion = 6;
var useRedirect = true;
var noFlashPage = "no_flash.html?msg=no"
var upgradePage = "no_flash.html?msg=upgrade"
var flash2Installed = false;
var flash3Installed = false;
var flash4Installed = false;
var flash5Installed = false;
var flash6Installed = false;
var flash7Installed = false;
var maxVersion = 7;
var actualVersion = 0;
var hasRightVersion = false;
var jsVersion = 1.0;

function got_flash(version, jsVersion) {
  var url = "main.php?flash_version=" + version;
  if(jsVersion > 1.0) {
    window.location.replace(url); 
  } else {
    window.location = url;
  }
}

// -->
</SCRIPT>

<SCRIPT LANGUAGE="JavaScript1.1" type="text/javascript">
<!--
var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.indexOf("Windows") != -1) ? true : false;
jsVersion = 1.1;

if(isIE && isWin){
  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('flash6Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.6"))) \n'); 
  document.write('flash7Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.7"))) \n');
  document.write('</SCR'+'IPT\> \n');
}
// -->
</SCRIPT>

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

function detectFlash() { 
  if (navigator.plugins) {
    if (navigator.plugins["Shockwave Flash 2.0"]
        || navigator.plugins["Shockwave Flash"]) {

      var isVersion2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
      var flashDescription = navigator.plugins["Shockwave Flash" + isVersion2].description;

      var flashVersion = parseInt(flashDescription.charAt(flashDescription.indexOf(".") - 1));
   
      flash2Installed = flashVersion == 2;   
      flash3Installed = flashVersion == 3;
      flash4Installed = flashVersion == 4;
      flash5Installed = flashVersion == 5;
      flash6Installed = flashVersion == 6;
      flash7Installed = flashVersion >= 7;
    }
  }
 
  for (var i = 2; i <= maxVersion; i++) {
    if (eval("flash" + i + "Installed") == true) actualVersion = i;
  }

  if(navigator.userAgent.indexOf("WebTV") != -1) actualVersion = 3; 
 
  if (actualVersion >= requiredVersion) {
    got_flash(actualVersion, jsVersion);
  } else { 
    if(jsVersion > 1.0) {
      window.location.replace((actualVersion >= 2) ? upgradePage : noFlashPage);
    } else {
      window.location = (actualVersion >= 2) ? upgradePage : noFlashPage;
    }
  }
}

// -->
</SCRIPT>
</head>
<body bgcolor="white" onLoad="java script:detectFlash();">

Det er for det første rimeligt gennemtestet og derudover så komprimeret, som du overhovedet kan :)

Denne plugin tjekker er anvendt af os på en lang række sites, gagilaxen.dk, www2.mcdonalds.dk, hvedespillet.tuborg.dk, sundhedsduellen.dk og mange andre - så vi er rimeligt overbeviste om at vi fanger "alle" browsere og redirecter rigtigt hurtigst muligt :)
Avatar billede jakwag Nybegynder
03. oktober 2003 - 11:41 #9
barklund > Ja, det var netop moocks script jeg gerne ville undgå, jeg har det bedst med at bruge noget jeg forstår.

Hvis dit script er det korteste der kan bruges (selvfølgelig vil jeg gerne have at det virker i alle browsere) så må jeg jo bruge det.

Kom med et svar.

Kan man have scriptet i én fil, og så bare referere til den i html filen?
Avatar billede barklund Nybegynder
03. oktober 2003 - 11:45 #10
Jeg plejer i min index.php at lægge en:

if (!isset($_GET['version'])) {
    header("Location: check_flash.html");
}

Og så ligger det andet script i check_flash.html :)
Avatar billede barklund Nybegynder
03. oktober 2003 - 11:45 #11
*Host*
Avatar billede barklund Nybegynder
22. oktober 2003 - 14:24 #12
Tark for points her også :)
Avatar billede jacobs1 Nybegynder
07. december 2004 - 10:44 #13
Jeg så lige dette spg. og vil meget gerne bruge barklunds svar.. men har lige 2 hurtige spørgsmål.
1.
var noFlashPage = "no_flash.html?msg=no"  // er hvis brugeren overhovedet ikke har flash ?

var upgradePage = "no_flash.html?msg=upgrade" // er hvis brugeren kun har flash player fx 5 el. 6 ?

Er det rigtig forstået?

2.
og hvordan tester jeg scriptet? kan man slette sin flash player og instalere flash player 6 i stedet for? hvordan gør man det smartes?
Avatar billede jacobs1 Nybegynder
07. december 2004 - 12:39 #14
Skal der endelig ikke også stå 7 i linie 4 var requiredVersion = 6;  i stedet for 6?
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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