<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/DTD/xhtml1-transitional.dtd"> <!-- Example File From "JavaScript and DHTML Cookbook" Published by O'Reilly & Associates Copyright 2003 Danny Goodman --> <html> <head> <title>Hide/Show Frame Example</title> <script language="JavaScript" type="text/javascript"> /* cookies.js */ /* Example File From "JavaScript and DHTML Cookbook" Published by O'Reilly & Associates Copyright 2003 Danny Goodman */
// utility function to retrieve a future expiration date in proper format; // pass three integer parameters for the number of days, hours, // and minutes from now you want the cookie to expire; all three // parameters required, so use zeros where appropriate function getExpDate(days, hours, minutes) { var expDate = new Date(); if (typeof days == "number" && typeof hours == "number" && typeof hours == "number") { expDate.setDate(expDate.getDate() + parseInt(days)); expDate.setHours(expDate.getHours() + parseInt(hours)); expDate.setMinutes(expDate.getMinutes() + parseInt(minutes)); return expDate.toGMTString(); } }
// utility function called by getCookie() function getCookieVal(offset) { var endstr = document.cookie.indexOf (";", offset); if (endstr == -1) { endstr = document.cookie.length; } return unescape(document.cookie.substring(offset, endstr)); }
// primary function to retrieve cookie by name 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; }
// store cookie value with optional details as needed function setCookie(name, value, expires, path, domain, secure) { document.cookie = name + "=" + escape (value) + ((expires) ? "; expires=" + expires : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : ""); }
// remove the cookie by setting ancient expiration date function deleteCookie(name,path,domain) { if (getCookie(name)) { document.cookie = name + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT"; } }
</script> <script language="JavaScript" type="text/javascript"> var origCols; function toggleFrame(elem) { if (origCols) { elem.firstChild.nodeValue = "<<Hide Navbar"; setCookie("frameHidden", "false", getExpDate(180, 0, 0)); showFrame(); } else { elem.firstChild.nodeValue = "Show Navbar>>"; setCookie("frameHidden", "true", getExpDate(180, 0, 0)); hideFrame(); } } function hideFrame() { var frameset = document.getElementById("masterFrameset"); origCols = frameset.cols; frameset.cols = "0, *"; }
function showFrame() { document.getElementById("masterFrameset").cols = origCols; origCols = null; }
// set frame visibility based on previous cookie setting function setFrameVis() { if (document.getElementById) { if (getCookie("frameHidden") == "true") { hideFrame() } } } </script> </head> <frameset id="masterFrameset" frameborder="no" cols="150,*" onload="setFrameVis()"> <frame id="controls" name="controlsFrame" src="toc.html" /> <frame id="content" name="contentFrame" src="content.html" /> </frameset> </html>
|