Festlegen von onbeforeunload für body-Elemente in Chrome und IE mithilfe von jQuery

Ich habe ein System, bei dem ich mit dem Benutzer abklären möchte, ob er die Seite wirklich verlassen möchte, sobald ein Dirty-Flag gesetzt ist.

Ich verwende den folgenden Code: In FireFox kann ich die Seitenquelle über FireBug anzeigen, und in das Tag ist das Attribut onbeforeunload korrekt eingefügt.

In Chrome und FireFox passiert dies jedoch nicht und ich kann ohne Vorwarnung von der Seite weg navigieren. Die jQuery-Zeile zum Aktualisieren des Body-Tags wird definitiv ausgeführt, sie führt sie nur nicht aus.

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

Irgendwelche Ideen, wie es weitergeht?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage