PDA

View Full Version : Modify script: Control cookies & popup window to control page to appears once per day


Deanna475
02-17-2003, 09:31 AM
I've been trying to find a script that will control an iFrame page to only appear once a day but all I'm finding are scripts that control popup windows. Perhaps it's possible to modify an existing popup window script to apply to a page?

The most common popup window script I kept coming across was this:

<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var expDays = 1; // number of days the cookie should last

var page = "name_of_file.htm";
var windowprops = "width=300,height=200,location=no,toolbar=no,menubar=no,scrollbars=no,resizable=yes";

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;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
function DeleteCookie (name) {
var exp = new Date();
exp.setTime (exp.getTime() - 1);
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
var exp = new Date();
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
function amt(){
var count = GetCookie('count')
if(count == null) {
SetCookie('count','1')
return 1
}
else {
var newcount = parseInt(count) + 1;
DeleteCookie('count')
SetCookie('count',newcount,exp)
return count
}
}
function getCookieVal(offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}

function checkCount() {
var count = GetCookie('count');
if (count == null) {
count=1;
SetCookie('count', count, exp);

window.open(page, "", windowprops);

}
else {
count++;
SetCookie('count', count, exp);
}
}
// End -->
</script>
</HEAD>


<BODY OnLoad="checkCount()">

************************************************

I imagine the modifications would have something to do with the code I highlighted in red but I haven't a clue as to how to adapt this script for a page and not a popup window.

Any and all assistance is greatly appreciated.

D.

glenngv
02-17-2003, 09:40 AM
window.open(page, "iframeNameHere", windowprops);

Deanna475
02-17-2003, 10:00 AM
Hi and thank you for your quick response Glenn. Unfortunately, your suggestion isn't doing the trick. Technically, if I refresh the parent page, the iFrame page in question shouldn't reload, but on my page it does. The cookie should have detected that it has already been viewed once and not load it again until a day has passed.

Hmmmm, maybe the cookie is reloading the page because it doesn't know which secondary page to load? *I* know which iFrame page should be loaded next if the first iFrame page has been viewed and OK clicked upon, but how do I tell the script that? Guess there's more to this than I had thought. :(

D.