Example: Subcookie Example

This example shows how to get and set subcookies as well as using conversion functions when retrieving subcookie values.





Description

The first three lines attempt to read the values stored in subcookies of the "example" cookie:

var name = Y.Cookie.getSub("example", "name");
var today = Y.Cookie.getSub("example", "today", function (value) {
    return new Date(value);
});
var count = Y.Cookie.getSub("example", "count", Number);

The "name" subcookie stores a string so it is retrieved without specifying a third argument.

The "today" subcookie stores a date string, which should be converted to a Date object upon retrieval; the third argument of getSub() is specified as a custom function that will convert the returned value into a Date object.

The "count" subcookie contains a number and is converted to an actual JavaScript number by passing in the native Number function.

If any of these subcookies don't exist, getSub() returns null. This should be the case the first time you run the example.

The retrieved values are shown in the browser console.

After that, new values are assigned to the various subcookies:

Y.Cookie.setSub("example", "name", "Yahoo!");
Y.Cookie.setSub("example", "today", (new Date()).toString());
Y.Cookie.setSub("example", "count", Math.round(Math.random() * 30));

The "name" subcookie is set to "Yahoo!", the "today" subcookie is set to the value of a new Date object as a string, and the "count" subcookie is filled with a random number. The next time you run the example, the subcookies should have these values.

Complete Example Source

<pre id="results"></pre>

<script>
YUI().use('cookie', 'node', function (Y) {

    var results = Y.one('#results'),
        log = function(str) {
            results.append(str + '<br>');
        };
    
    //get subcookie values
    var name = Y.Cookie.getSub("example", "name");
    var today = Y.Cookie.getSub("example", "today", function (value) {
        return new Date(value);
    });
    var count = Y.Cookie.getSub("example", "count", Number);

    //set subcookie values
    Y.Cookie.setSub("example", "name", "Yahoo!");
    Y.Cookie.setSub("example", "today", (new Date()).toString());
    Y.Cookie.setSub("example", "count", Math.round(Math.random() * 30));
    
    
    log("The subcookie 'name' is '" + name + "' (" + (typeof name) + ")");
    log("The subcookie 'today' is '" + today + "' (" + (typeof today) + ")");
    log("The subcookie 'count' is '" + count + "' (" + (typeof count) + ")");
       

});
</script>