So a dev buddy popped a question in IRC the other day.  He was trying to host
an ad/offer thing inside of an iframe, but the offer checked for this and redirected
the top page to itself.  He had been wracking his brain trying to work around
this, and it looked like an interesting problem, so I stepped up to the plate.

First we attempted to simply overwrite location.replace with an empty function. 
This seemed to work on IE but did nothing on FF3.  It also became apparent that
this method would fail as a subsequent refresh gave us different javascript that simply
changed the location.href.  FAIL.

I did a bit of googling on the issue and stumbled across a forum post suggesting the
use of onBeforeUnload on the parent page.  I played around with this idea, getting
mixed results, but since there seemed like no other way, I dug a bit deeper. 
I was trying to do this by hand, with no libraries, and decided to bring in a little
help since I didn’t care to handle all the x-browser event nonsense.  I loaded
up prototype.js and reworked my code to use it.  The following emerged:

function
windowUnload(evt) {
var ifr = $(‘ifr’);

if (ifr
== evt.element()) {
evt.stop();
}
}

Event.observe(window, ‘unload’, windowUnload);
$(‘ifr’).observe(‘unload’, windowUnload);

The id ‘ifr’ is the iframe holding the offer/ad.  This also manages to prevent
any unload checks that the embedded page might popup.

Enjoy!