Configurando onbeforeunload no elemento body no Chrome e no IE usando jQuery

Eu tenho um sistema onde eu quero verificar com o usuário se eles têm certeza que querem deixar a página uma vez que uma bandeira suja é definida.

Eu estou usando o seguinte código - No FireFox, eu posso olhar a fonte da página através do FireBug e a tag corretamente tem o atributo onbeforeunload inserido nela.

No Chrome e no FireFox, isso não acontece e sou capaz de sair da página sem qualquer aviso. A linha jQuery para atualizar a tag body está definitivamente sendo executada, ela simplesmente não está sendo executada.

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)');
    }
}

Alguma idéia de como proceder a partir daqui?