Ok. Try something like this:
//register your custom handler if it is not already there.
if (!window.YourUnloadHandler) {
/**
* YourUnloadHandler functions.
*/
window.YourUnloadHandler = {
// flag to workaround IE bugs
skipNextUnload: false,
/**
* Click handler to detect phatom beforeunload events in ie.
* @param {event} event Event.
*/
skipUnloadForScriptUrls: function(event) {
var H = YourUnloadHandler;
var target = Event.findElement(event);
// check if self, parent, or grandparent is a link
for (var i = 0; i < 3 && target.tagName != "A" && target.parentNode; i++)
target = target.parentNode;
H.skipNextUnload = (/^(javascript|mailto|tel|fax|aim|geo)/.test(target.href));
},
/**
* Onbeforeunload handler
* @param {event} event Event.
*/
unloadFn: function(event) {
if (console)
console.log("unloadFn called");
var H = YourUnloadHandler;
if (H.skipNextUnload) {
if (console)
console.log("skipped unload event");
H.skipNextUnload = false;
return;
}
alert("unloaded");
}
}
// register your custom event handler
Event.waitUntilLoaded(function() {
var H = YourUnloadHandler;
if (console)
console.log("registering event handlers");
//observer for full page reload
Event.observe(window, "beforeunload", H.unloadFn);
//observer for partial page reload
OpenAjax.hub.subscribe("Noodle.page.unload", H.unloadFn);
//special care to workaround IE wierdness.
if (CAF.ie)
Event.observe(document, "click", H.skipUnloadForScriptUrls);
});
}
#MWS-CAF-Task-Engine#webMethods#webMethods-BPMS