Gracias a tu mensaje pude resolverlo. Lo que necesitaba era evitar que el usuario salga del formulario a medio completar, no pude hacer que si intenta ir a otra parte del menú le consulte si desea cancelar todo, pero lo hago automáticamente.
Dejo el código final.
Muchas gracias.
Código:
var salidaValida = 0;
window.onunload = function (elEvento)
{
var e = elEvento || window.event;
if (salidaValida==0)
{
if (e.preventDefault)
{
e.cancel = true;
e.cancelBubble=true;
e.preventDefault();
e.stopPropagation();
}
else
{
e.returnValue = false;
e.cancelBubble = true;
}
var objFrame = parent.top.window.frames[1];
objFrame.location = "procesar.php?accion=cancelar&oculto=1";
return false;
}
}
function verEvento(elEvento)
{
var evento = elEvento || window.event;
salidaValida = 1;
}
document.onclick = verEvento;
En mi caso como lo que quiero evitar es que se desplace por el menú que esta en la página que contiene el iframe detecto que es un evento interno con el document.onclick y si no lo es ejecuto en otro iframe oculto el cancelar.