Définir onbeforeunload sur l'élément body dans Chrome et IE en utilisant jQuery

J'ai un système où je veux vérifier avec l'utilisateur, s'ils sont sûrs qu'ils veulent quitter la page une fois un sale drapeau est réglé.

Je suis en utilisant le code suivant - Dans FireFox, je peux regarder le code source de la page grâce à FireBug et la balise correctement a la onbeforeunload attribut inséré.

Dans Chrome et FireFox, cela n'arrive pas et si je suis en mesure de naviguer à partir de la page sans aucun avertissement. Le jQuery ligne pour mettre à jour la balise body est certainement en cours d'exécution, il n'est tout simplement pas.

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

Toutes les idées sur la façon de procéder à partir d'ici?

source d'informationauteur Graeme