Return to Snippet

Revision: 684
at July 31, 2006 04:13 by markhope


Updated Code
<script type="text/javascript">
	// taken from http://evolt.org/article/list/20/416/
		// <![CDATA[
	var Splash = GetCookie('SplashSkip');
	var ReDirected = GetCookie('SplashReDirected');

	ReDirect('/welcome');

	function ReDirect (URL) {

		SetCookie('SplashSkip','TRUE',1);

		if (Splash == 'TRUE' && ReDirected != 'TRUE' ) {
			SetCookie('SplashReDirected','TRUE');
			window.location=(URL);
		}
	}

	function getCookieVal (offset) {
	  var endstr = document.cookie.indexOf (";", offset);
	  if (endstr == -1)
	    endstr = document.cookie.length;
	  return unescape(document.cookie.substring(offset, endstr));
	}

	function GetCookie (name) {
	  var arg = name + "=";
	  var alen = arg.length;
	  var clen = document.cookie.length;
	  var i = 0;
	  while (i < clen) {
	  var j = i + alen;
	  if (document.cookie.substring(i, j) == arg)
	    return getCookieVal (j);
	  i = document.cookie.indexOf(" ", i) + 1;
	  if (i == 0) break; 
	  }
	  return null;
	}

	function SetCookie(name, value, expDays, path, domain, secure) {
		// Set cookie with name, value etc provided
		// in function call and date from above
		// Number of days the cookie should persist NB expDays='' or undef. => non-persistent
		if (expDays != null ) {
			var expires = new Date(); 
			expires.setTime(expires.getTime() + (expDays*24*60*60*1000));
		}	
		var curCookie = name + "=" + escape(value) +
			((expires) ? "; expires=" + expires.toGMTString() : "") +
			((path) ? "; path=" + path : "") +
			((domain) ? "; domain=" + domain : "") +
			((secure) ? "; secure" : "");
		document.cookie = curCookie;
	}
		// ]]>
	</script>

Revision: 683
at July 31, 2006 04:11 by markhope


Initial Code
	<script type="text/javascript">
		// <![CDATA[
	var Splash = GetCookie('SplashSkip');
	var ReDirected = GetCookie('SplashReDirected');

	ReDirect('/welcome');

	function ReDirect (URL) {

		SetCookie('SplashSkip','TRUE',1);

		if (Splash == 'TRUE' && ReDirected != 'TRUE' ) {
			SetCookie('SplashReDirected','TRUE');
			window.location=(URL);
		}
	}

	function getCookieVal (offset) {
	  var endstr = document.cookie.indexOf (";", offset);
	  if (endstr == -1)
	    endstr = document.cookie.length;
	  return unescape(document.cookie.substring(offset, endstr));
	}

	function GetCookie (name) {
	  var arg = name + "=";
	  var alen = arg.length;
	  var clen = document.cookie.length;
	  var i = 0;
	  while (i < clen) {
	  var j = i + alen;
	  if (document.cookie.substring(i, j) == arg)
	    return getCookieVal (j);
	  i = document.cookie.indexOf(" ", i) + 1;
	  if (i == 0) break; 
	  }
	  return null;
	}

	function SetCookie(name, value, expDays, path, domain, secure) {
		// Set cookie with name, value etc provided
		// in function call and date from above
		// Number of days the cookie should persist NB expDays='' or undef. => non-persistent
		if (expDays != null ) {
			var expires = new Date(); 
			expires.setTime(expires.getTime() + (expDays*24*60*60*1000));
		}	
		var curCookie = name + "=" + escape(value) +
			((expires) ? "; expires=" + expires.toGMTString() : "") +
			((path) ? "; path=" + path : "") +
			((domain) ? "; domain=" + domain : "") +
			((secure) ? "; secure" : "");
		document.cookie = curCookie;
	}
		// ]]>
	</script>

Initial URL


Initial Description
Redirect a splash page using javascript. This snippet allows one redirect per session making the backwards navigation possible using the back button.

Initial Title
Redirect cookie once per session

Initial Tags
javascript, redirect, textmate

Initial Language
JavaScript