Any web programmer has good tools to manipulate read and write the query string and cookies on the server side. A while back, when trying to utilize this information on the client side, I found the available JavaScript functions were cumbersome for retrieving and "storing" multiple pieces of cookie and query string data. They lack what the server side model has which is an associative array to retrieve cookie and and query string key/value pairs. So I have the two classes
Cookies and
QueryString which wrap up the related JavaScript functions and provide you with similar functionality.
Instantiate global instances of these classes and initialize them:
window.gCookies = new Cookies();
window.gQueryString = new QueryString();
gCookies.Read();
gQueryString.Read();
Retrieving some sample data from these objects:
var iObjId = parseInt(gCookies.GetValue("","myObjId"));
var reportId = gQueryString.GetValue("reportId");
These data structures can store and retrieve data safely until it is later utilized by writing out the cookie to the document (
Cookie's
Write method), or reassembling the query string (
ToString method) and navigating to another page with it.
myQueryString.Clear();
myQueryString.SetValue("workspaceId", workspaceId);
...
myLink.href = document.location.pathname + myQueryString.ToString();
The
QueryString class is emptied of all key/values by calling the
Clear method. The
Cookie class does not have a clear
Clear method. To destroy a cookie you must set its value to
null, and once
Write() is called it will be forced to expire.
gCookies.SetValue("", "MyIntegerOption", 1);
gCookies.SetValue("", "MyCookieToExpire", null)
gCookies.Write();
This code is available here.