SitePoint Sponsor

User Tag List

Results 1 to 7 of 7
  1. #1
    SitePoint Enthusiast
    Join Date
    Nov 2004
    Location
    Fort Worth, Texas
    Posts
    65
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Redirecting if Flash isn't detected

    I have an index page with nothing but a flash movie on it. Currently, I'm using the javascript that will display the "Get Flash" link to Adobe if the users Flash is outdated or not found. What would be the best way to redirect to a different page intead?

    Would using PHP to change a meta tag work, I'm thinking meta tags only get run upon a page load or refresh. Is there a way to automatically redirect right in the body?

    Another concern of mine is that SE bots will also get redirected since, to my knowledge, they don't generally use flash plugins.

  2. #2
    dooby dooby doo silver trophybronze trophy
    spikeZ's Avatar
    Join Date
    Aug 2004
    Location
    Manchester UK
    Posts
    13,804
    Mentioned
    157 Post(s)
    Tagged
    3 Thread(s)
    What is your javascript you are using now?
    It might be something as simple as not displaying the GET FLASH text but using window.location = "http://www.mysite.com/noFlash"
    Mike Swiffin - Community Team Advisor
    Only a woman can read between the lines of a one word answer.....

  3. #3
    SitePoint Enthusiast
    Join Date
    Nov 2004
    Location
    Fort Worth, Texas
    Posts
    65
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by spikeZ View Post
    What is your javascript you are using now?
    It might be something as simple as not displaying the GET FLASH text but using window.location = "http://www.mysite.com/noFlash"
    Sorry for not posting my code, I'm always ragging on people who don't post theirs - and here I am, guilty myself. Here's the code I'm using.
    Code:
    <head>
    <script language="JavaScript" type="text/javascript">
    <!--
    // -----------------------------------------------------------------------------
    // Globals
    // Major version of Flash required
    var requiredMajorVersion = 8;
    // Minor version of Flash required
    var requiredMinorVersion = 0;
    // Minor version of Flash required
    var requiredRevision = 0;
    // the version of javascript supported
    var jsVersion = 1.0;
    // -----------------------------------------------------------------------------
    // -->
    </script>
    <script language="VBScript" type="text/vbscript">
    <!-- // Visual basic helper required to detect Flash Player ActiveX control version information
    Function VBGetSwfVer(i)
      on error resume next
      Dim swControl, swVersion
      swVersion = 0
    
      set swControl = CreateObject("ShockwaveFlash.ShockwaveFlash." + CStr(i))
      if (IsObject(swControl)) then
        swVersion = swControl.GetVariable("$version")
      end if
      VBGetSwfVer = swVersion
    End Function
    // -->
    </script>
    <script language="JavaScript1.1" type="text/javascript">
    <!-- // Detect Client Browser type
    var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
    var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
    var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
    jsVersion = 1.1;
    // JavaScript helper required to detect Flash Player PlugIn version information
    function JSGetSwfVer(i) {
    	// NS/Opera version >= 3 check for Flash plugin in plugin array
    	if (navigator.plugins != null && navigator.plugins.length > 0) {
    		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
    			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
          		var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
    			descArray = flashDescription.split(" ");
    			tempArrayMajor = descArray[2].split(".");
    			versionMajor = tempArrayMajor[0];
    			versionMinor = tempArrayMajor[1];
    			if ( descArray[3] != "" ) {
    				tempArrayMinor = descArray[3].split("r");
    			} else {
    				tempArrayMinor = descArray[4].split("r");
    			}
          		versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
                flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
          	} else {
    			flashVer = -1;
    		}
    	}
    	// MSN/WebTV 2.6 supports Flash 4
    	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
    	// WebTV 2.5 supports Flash 3
    	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
    	// older WebTV supports Flash 2
    	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
    	// Can't detect in all other cases
    	else {
    
    		flashVer = -1;
    	}
    	return flashVer;
    } 
    // When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
    function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) 
    {
     	reqVer = parseFloat(reqMajorVer + "." + reqRevision);
       	// loop backwards through the versions until we find the newest version	
    	for (i=25;i>0;i--) {	
    		if (isIE && isWin && !isOpera) {
    			versionStr = VBGetSwfVer(i);
    		} else {
    			versionStr = JSGetSwfVer(i);
    		}
    		if (versionStr == -1 ) { 
    			return false;
    		} else if (versionStr != 0) {
    			if(isIE && isWin && !isOpera) {
    				tempArray         = versionStr.split(" ");
    				tempString        = tempArray[1];
    				versionArray      = tempString .split(",");
    			} else {
    				versionArray      = versionStr.split(".");
    			}
    			versionMajor      = versionArray[0];
    			versionMinor      = versionArray[1];
    			versionRevision   = versionArray[2];
    
    			versionString     = versionMajor + "." + versionRevision;   // 7.0r24 == 7.24
    			versionNum        = parseFloat(versionString);
            	// is the major.revision >= requested major.revision AND the minor version >= requested minor
    			if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) {
    				return true;
    			} else {
    				return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false );	
    			}
    		}
    	}
    }
    // -->
    </script>
    </head>
    
    
    <body>
    <script language="JavaScript" type="text/javascript">
    <!--
    // Version check based upon the values entered above in "Globals"
    var hasReqestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
    
    // Check to see if the version meets the requirements for playback
    if (hasReqestedVersion) {  // if we've detected an acceptable version
        var oeTags = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
        + 'width="720" height="486"'
        + 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">'
        + '<param name="movie" value="http://www.yankeecowboy.com/files/video/RODL_WebOpen.swf" /><param name="quality" value="high"/>'
        + '<param name="bgcolor" value="#000000" />'
        + '<embed src="The URL to my Video" quality="high bgcolor="#000000"'
        + 'width="720" height="486" name="The URL to my Video" align="middle"'
        + 'play="true" menu="true"'
        + 'loop="false"'
        + 'quality="high"'
        + 'allowScriptAccess="always"'
        + 'type="application/x-shockwave-flash"'
        + 'pluginspage="http://www.macromedia.com/go/getflashplayer">'
        + '<\/embed>'
        + '<\/object>';
        document.write(oeTags);   // embed the Flash Content SWF when all tests are passed
      } else {  // flash is too old or we can't detect the plugin
        var alternateContent = 'The Flash player was not detected, or it is out of date.'
      	+ 'This content requires the Macromedia Flash Player.'
       	+ '<a href=http://www.macromedia.com/go/getflash/>Get Flash</a>';
        document.write(alternateContent);  // insert non-flash content
      }
    // -->
    </script>
    <noscript>
      	This content requires the Macromedia Flash Player.
      	<a href="http://www.macromedia.com/go/getflash/">Get Flash</a>
    </noscript>
    	</div>
    </body>

  4. #4
    dooby dooby doo silver trophybronze trophy
    spikeZ's Avatar
    Join Date
    Aug 2004
    Location
    Manchester UK
    Posts
    13,804
    Mentioned
    157 Post(s)
    Tagged
    3 Thread(s)
    holy crap, thats alot of script!
    I guess (and I mean guess....!) that changing the final portion:
    Code:
     var alternateContent = 'The Flash player was not detected, or it is out of date.'
      	+ 'This content requires the Macromedia Flash Player.'
       	+ '<a href=http://www.macromedia.com/go/getflash/>Get Flash</a>';
        document.write(alternateContent);  // insert non-flash content
    to

    Code:
    document.location="nonflashpage.php";
    ..... ish!
    Mike Swiffin - Community Team Advisor
    Only a woman can read between the lines of a one word answer.....

  5. #5
    Is Still Alive silver trophybronze trophy RetroNetro's Avatar
    Join Date
    Jul 2003
    Location
    Texas
    Posts
    6,883
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Hello

    Check out swfObject.

  6. #6
    SitePoint Enthusiast
    Join Date
    Nov 2004
    Location
    Fort Worth, Texas
    Posts
    65
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by spikeZ View Post
    holy crap, thats alot of script!
    I guess (and I mean guess....!) that changing the final portion:
    Code:
     var alternateContent = 'The Flash player was not detected, or it is out of date.'
      	+ 'This content requires the Macromedia Flash Player.'
       	+ '<a href=http://www.macromedia.com/go/getflash/>Get Flash</a>';
        document.write(alternateContent);  // insert non-flash content
    to

    Code:
    document.location="nonflashpage.php";
    ..... ish!
    That worked wonderfully, thank you. What about my concern that search engine bots will also get redirected? Is this a valid concern?

  7. #7
    dooby dooby doo silver trophybronze trophy
    spikeZ's Avatar
    Join Date
    Aug 2004
    Location
    Manchester UK
    Posts
    13,804
    Mentioned
    157 Post(s)
    Tagged
    3 Thread(s)
    Not sure about the SE part to be honest. AFAIK they dont index flash easily... (prepares for berating and bashing from SEO folks!). Perhaps a thread in the SEO forum?!
    Mike Swiffin - Community Team Advisor
    Only a woman can read between the lines of a one word answer.....


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •