Ustawienie onbeforeunload na elemencie body w Chrome i IE za pomocą jQuery

Mam system, w którym chcę sprawdzić z użytkownikiem, czy są pewni, że chcą opuścić stronę po ustawieniu brudnej flagi.

Używam następującego kodu - W FireFox mogę patrzeć na źródło strony za pomocą FireBug, a tag poprawnie ma wstawiony atrybut onbeforeunload.

W Chrome i FireFox tak się jednak nie dzieje i jestem w stanie opuścić stronę bez żadnego ostrzeżenia. Linia jQuery do aktualizacji znacznika treści jest zdecydowanie wykonywana, po prostu jej nie wykonuje.

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

Jakieś pomysły, jak postępować stąd?

questionAnswers(5)

yourAnswerToTheQuestion