SitePoint Sponsor

User Tag List

Results 1 to 5 of 5
  1. #1
    SitePoint Zealot maffp's Avatar
    Join Date
    Jun 2005
    Location
    UK
    Posts
    158
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Question Flash detection and redirect problem

    Hi!

    I have a splash screen for a site I'm doing which redirects on completion of the short flash movie (see code below)

    Code:
    function redirect() {
       var timeOut:Number = setTimeout(function(){getURL("http://www.anysite.co.uk/index.htm")}, 1000);
    }
    I am detecting flash using the standard script created by flash when publishing to HTML:

    Code:
    <script language="JavaScript" type="text/javascript">
    <!--
    // -----------------------------------------------------------------------------
    // Globals
    // Major version of Flash required
    var requiredMajorVersion = 8;
    // Minor version of Flash required
    var requiredMinorVersion = 0;
    // Revision 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;
    } 
    // If called with no parameters this function returns a floating point value 
    // which should be the version of the Flash Player or 0.0 
    // ex: Flash Player 7r14 returns 7.14
    // If 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 );	
    			}
    		}
    	}	
    	return (reqVer ? false : 0.0);
    }
    // -->
    </script>
    And the following to embed the flash movie:

    Code:
    <!--url's used in the movie-->
    <!--text used in the movie-->
    <script language="JavaScript" type="text/javascript">
    <!-- 
    var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
    if(hasRightVersion) {  // if we've detected an acceptable version
        var oeTags = '<div style="text-align:center;"><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="themovie.swf" /><param name="quality" value="high" /><param name="wmode" value="transparent" /><param name="bgcolor" value="#003300" />'
        + '<embed src="themovie.swf" quality="high" wmode="transparent" bgcolor="#003300" '
        + 'width="550" height="400" name="themovie" align="middle"'
        + 'play="true"'
        + 'loop="false"'
        + 'quality="high"'
        + 'allowScriptAccess="sameDomain"'
        + 'type="application/x-shockwave-flash"'
        + 'pluginspage="http://www.macromedia.com/go/getflashplayer">'
        + '<\/embed>'
        + '<\/object>'
    	+ '<\/div>';
        document.write(oeTags);   // embed the flash movie
      } else {  // flash is too old or we can't detect the plugin
        var alternateContent = 'Alternate HTML content should be placed here.'
      	+ '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>
    	// Provide alternate content for browsers that do not support scripting
    	// or for those that have scripting disabled.
      	Alternate HTML content should be placed here. This content requires the Macromedia Flash Player.
      	<a href="http://www.macromedia.com/go/getflash/">Get Flash</a>  	
    </noscript>
    Thing is, I want to do a redirect from the page even when there is no flash and/or no script capability in the browser... what's the best way to do this without jeopardising the page's rank within search engines?

    Thanks.

  2. #2
    Caveat surfer Buddy Bradley's Avatar
    Join Date
    May 2003
    Location
    Cambridge, UK
    Posts
    2,366
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Search engines ignore redirects, so you won't be able to do that without affecting SEO.

  3. #3
    SitePoint Zealot maffp's Avatar
    Join Date
    Jun 2005
    Location
    UK
    Posts
    158
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    So is there any way of creating a splash screen which doesn't affect SEO? Perhaps overlayering a full page flash movie over the main page and then having it disappear on completion?

    And what about server side redirects? Does that affect SEO?

    Also, do search engines ignore flash redirects too?

  4. #4
    Caveat surfer Buddy Bradley's Avatar
    Join Date
    May 2003
    Location
    Cambridge, UK
    Posts
    2,366
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    If you must have a splash-screen (a completely pointless concept as has been established after 10 years of people building websites - it's like putting a guy out in front of your store and not letting anyone in until they've watched a short play on why the store is great), include a plain HTML link to your homepage that search engines can follow.

    Server-side redirects only work before any content has been sent to the page, so I can't see how that would help you.

    Search engines don't 'see' anything but the HTML code you write.

  5. #5
    SitePoint Zealot maffp's Avatar
    Join Date
    Jun 2005
    Location
    UK
    Posts
    158
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    ha!

    Don't worry, it's not one of those really annoying 1 minute intros, just a 6 second animation!


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
  •