FP98: Sample JavaScript for Tracking Site Visits via CookiesID: Q194461
|
This article provides a sample JavaScript that keeps a record of how many times a given browser has visited a HyperText Markup Language (HTML) document using a cookie to record visits.
WARNING: ANY USE BY YOU OF THE CODE PROVIDED IN THIS ARTICLE IS AT YOUR
OWN RISK. Microsoft provides this code "as is" without warranty of any
kind, either express or implied, including but not limited to the implied
warranties of merchantability and/or fitness for a particular purpose.
Cookies are special files that a web server can use to store data on a
client browser, such as Microsoft Internet Explorer. By using a cookie, you
can track how often a particular visitor comes to your site compared with
the total number of visits. A disadvantage is that if the client deletes
the cookie by clearing out the browser's cache, the hit count will reset
to zero.
You can record the number of visits with a cookie by using the following
sample JavaScript. To enter this script, switch to HTML view in Frontpage
Editor and type this script after the </TITLE> tag:
<SCRIPT LANGUAGE="JavaScript">
<!--
var caution = false
// name - name of the cookie
// value - value of the cookie
// [expires] - expiration date of the cookie
// (defaults to end of current session)
// [path] - path for which the cookie is valid
// (defaults to path of calling document)
// [domain] - domain for which the cookie is valid
// (defaults to domain of calling document)
// [secure] - Boolean value indicating if
// the cookie transmission requires a secure transmission
// * an argument defaults when it is assigned null as a placeholder
// * a null placeholder is not required for trailing omitted arguments
function setCookie(name, value, expires, path, domain, secure) {
var curCookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "")
if (!caution || (name + "=" + escape(value)).length <= 4000)
document.cookie = curCookie
else
if (confirm("Cookie exceeds 4KB and will be cut!"))
document.cookie = curCookie
}
// name - name of the cookie
// * return string containing value
// of specified cookie or null if cookie
// does not exist
function getCookie(name) {
var prefix = name + "="
var cookieStartIndex = document.cookie.indexOf(prefix)
if (cookieStartIndex == -1)
return null
var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex +
prefix.length)
if (cookieEndIndex == -1)
cookieEndIndex = document.cookie.length
return unescape(document.cookie.substring(cookieStartIndex +
prefix.length,
cookieEndIndex))
}
// name - name of the cookie
// [path] - path of the cookie
// (must be same as path used to create cookie)
// [domain] - domain of the cookie
// (must be same as domain used to create cookie)
// * path and domain default if assigned
// null or omitted if no explicit argument proceeds
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"
}
}
// date - any instance of the Date object
// * you should hand all instances of the
// Date object to this function for "repairs"
// * this function is taken from
// Chapter 14, "Time and Date in JavaScript", in
// "Learn Advanced JavaScript Programming"
function fixDate(date) {
var base = new Date(0)
var skew = base.getTime()
if (skew > 0)
date.setTime(date.getTime() - skew)
}
var now = new Date()
fixDate(now)
now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000)
var visits = getCookie("counter")
if (!visits)
visits = 1
else
visits = parseInt(visits) + 1
setCookie("counter", visits, now)
document.write("You have been here " + visits + " time(s).")
// -->
</SCRIPT>
When you are finished entering the script, save your page and then preview
it in a Web browser to check functionality.
Yehuda Shiran, Tomar Shiran, Tomer Shiran. "Learn Advanced JavaScript Programming, " Chapter 14. Time and Date in JavaScript, Plano, TX: Wordware Publishing.
Additional query words: 98 Jscript Java
Keywords : fpedit fpscript
Version : WINDOWS:
Platform : WINDOWS
Issue type : kbhowto
Last Reviewed: July 28, 1999