« Get query string with JS | Main | RSS 1.0 Job Vacancy Schema »
May 29, 2009
Getting GET parameters with JavaScript and setting them in a cookie
var queryString = window.top.location.search.substring(1);
function getParameter ( queryString, parameterName ) {
// Add "=" to the parameter name (i.e. parameterName=value)
var parameterName = parameterName + "=";
if ( queryString.length > 0 ) {
// Find the beginning of the string
begin = queryString.indexOf ( parameterName );
// If the parameter name is not found, skip it, otherwise return the value
if ( begin != -1 ) {
// Add the length (integer) to the beginning
begin += parameterName.length;
// Multiple parameters are separated by the "&" sign
end = queryString.indexOf ( "&" , begin );
if ( end == -1 ) {
end = queryString.length
}
// Return the string
return unescape ( queryString.substring ( begin, end ) );
}
// Return "null" if no parameter has been found
return false;
}
}
function get_start_date(queryString){
var start_date = getParameter(queryString, 'SQ_CALENDAR_DATE')
if(start_date){ return start_date; }
return false;
}
function get_view(queryString){
var view = getParameter(queryString, 'SQ_CALENDAR_VIEW')
if(view){ return view; }
return false;
}
function create_cookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function read_cookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0){
//alert(c.substring(nameEQ.length,c.length));
return c.substring(nameEQ.length,c.length);
}
}
return false;
}
//If we don't have a start date in the URL, try getting the cookie and if we have one redirect back to ourselves including the start_date in the URL
if(get_start_date(queryString) == false){
var bicky = read_cookie('start_date');
if(bicky != false){ document.location.href = document.location.href + '?SQ_CALENDAR_DATE=' + bicky; }
}
//Otherwise we have a start date in the URL query so grab it and slot it into a cookie
else{ create_cookie('start_date', get_start_date(queryString), 1); }
//If we have called a day view then redirect us to the day view asset
if(get_view(queryString) == 'day'){ document.location = 'day'; }
if(get_view(queryString) == 'week'){ document.location = 'week'; }
if(get_view(queryString) == 'month'){ document.location = 'month'; }
//alert(read_cookie('start_date'));
Tags: JavaScript
Posted by pj at May 29, 2009 09:54 PM