F
fiziwig
I was looking for a way to have a popup window appear when someone left
my page, but not have it appear when they hit the refresh or back
buttons on the browser. Since using onUnload="..." in the body tag
causes the window to appear when you hit the refresh or back buttons,
that didn't do what I wanted.
After doing Google searches for many days I never did find an answer
for how to do this. I thought I could have each page open the popup
onUnload, but then also have each page close the window onLoad, so the
window only stays visible if you actually exit from my whole website.
The problem is, I didn't have the handle to the window object in the
page that wanted to close the window. I tried passing the handle in a
cookie, but that didn't work either.
My solution, which I haven't seen anywhere else before, works like
this:
Every page (they are php) includes the same header which has this code
in it:
var exit = true;
<?php
$popstuff = file_get_contents("_popstuff.txt");
$values = explode("|",$popstuff);
$usepop = $values[0];
if ($usepop!="on") {
echo("exit = false;\n"); // turn off popup window
}
?>
function offerWindow() {
if ( exit ) {
offerPop=window.open('_offer.php',
'offer','width=425,height=298,resizable=0,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0');
offerPop.blur();
window.focus();
}
}
function noExit() {
exit = false;
}
function closeOffer() {
offerPop=window.open('_offer.php',
'offer','width=0,height=0,resizable=0,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0');
offerPop.close();
}
// End -->
</script>
</head>
<body onUnload="offerWindow();" onLoad="closeOffer();">
Now what happens is if you leave the page it opens the popup, but
before you even get to see it, the next page closes it (by window name
instead of by handle). If you close the browser, or leave the whole web
page then the popup remains. If there is a path you wish to take out of
the site that does not show the popup then just include
onClick="noExit()" to the link and it turns off the popup. Normally the
links that go from page to page within the website will all include the
"noExit()" call so the popup never even shows up. But the problem where
the popup shows up on browser refresh or back buttons just goes away.
--gary
my page, but not have it appear when they hit the refresh or back
buttons on the browser. Since using onUnload="..." in the body tag
causes the window to appear when you hit the refresh or back buttons,
that didn't do what I wanted.
After doing Google searches for many days I never did find an answer
for how to do this. I thought I could have each page open the popup
onUnload, but then also have each page close the window onLoad, so the
window only stays visible if you actually exit from my whole website.
The problem is, I didn't have the handle to the window object in the
page that wanted to close the window. I tried passing the handle in a
cookie, but that didn't work either.
My solution, which I haven't seen anywhere else before, works like
this:
Every page (they are php) includes the same header which has this code
in it:
var exit = true;
<?php
$popstuff = file_get_contents("_popstuff.txt");
$values = explode("|",$popstuff);
$usepop = $values[0];
if ($usepop!="on") {
echo("exit = false;\n"); // turn off popup window
}
?>
function offerWindow() {
if ( exit ) {
offerPop=window.open('_offer.php',
'offer','width=425,height=298,resizable=0,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0');
offerPop.blur();
window.focus();
}
}
function noExit() {
exit = false;
}
function closeOffer() {
offerPop=window.open('_offer.php',
'offer','width=0,height=0,resizable=0,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0');
offerPop.close();
}
// End -->
</script>
</head>
<body onUnload="offerWindow();" onLoad="closeOffer();">
Now what happens is if you leave the page it opens the popup, but
before you even get to see it, the next page closes it (by window name
instead of by handle). If you close the browser, or leave the whole web
page then the popup remains. If there is a path you wish to take out of
the site that does not show the popup then just include
onClick="noExit()" to the link and it turns off the popup. Normally the
links that go from page to page within the website will all include the
"noExit()" call so the popup never even shows up. But the problem where
the popup shows up on browser refresh or back buttons just goes away.
--gary