Configuración antes de descargar en el elemento del cuerpo en Chrome e IE usando jQuery

Tengo un sistema en el que quiero consultar con el usuario si está seguro de que desea abandonar la página una vez que se establece un indicador sucio.

Estoy usando el siguiente código: en Firefox, puedo ver la fuente de la página a través de FireBug y la etiqueta tiene correctamente insertado el atributo onbeforeunload.

Sin embargo, esto no sucede en Chrome y FireFox, y puedo navegar fuera de la página sin ningún tipo de advertencia. La línea jQuery para actualizar la etiqueta del cuerpo definitivamente se está ejecutando, simplemente no la está ejecutando.

if ($("body").attr('onbeforeunload') == null) {
    if (window.event) {
        // IE and Chrome use this
        $("body").attr('onbeforeunload', 'CatchLeavePage(event)');
    }
    else {
        // Firefox uses this
        $("body").attr('onbeforeunload', 'return false;CatchLeavePage(event)');
    }
}

¿Alguna idea de cómo proceder desde aquí?