2013-05-21 18 views
13

Pracuję w aplikacji Flex4, używając javascript, w dokumencie "index.template.html". Mam problem z używaniem onbeforeunload w Firefoksie. Aplikacja działa idealnie w IE, ale dokładnie ta sama nie pasuje do FF. (Patrz poniżej)Użyj JQuery lub onbeforeunload dla IE i FF

<script type="text/javascript"> 
window.onbeforeunload=before; 
window.onunload=after; 

function before(evt) 
{ 
    var flex=document.$(application)||window.$(application); 
    flex.unloadMethod(); //custom method to log out the user 
} 

function after(evt) 
{ 

} 
</script> 

Z tego co znalazłem, FF nie wydaje się zarejestrować onbeforeunload wydarzenia, więc okazało się, że popularna rzeczą używać zamiast wiąże z jQuery. Usunąłem powyższy kod i zastąpiłem go poniższym kodem, ale nie wyświetla się pop-up, gdy użytkownik próbuje opuścić stronę zarówno w IE, jak i FF. Każdy, kto wydaje się używać JQuery do tego wydaje się robić dokładnie to samo, więc nie wiem, co się dzieje.

<script type="text/javascript"> 
$(window).bind("beforeunload",function(event){ 
    return "This should create a pop-up"; 
}); 
</script> 

końcu miło byłoby nazywać „flex.unloadMethod” jak w pierwszym kawałku kodu, ale na razie jestem po prostu staramy się pop-up do pracy, więc wiem jestem na dobrej drodze. Każdy wgląd byłby bardzo doceniony.

+0

Musisz '$ (okno) .bind ("beforeunload", funcation (event) {' - Zauważyłem, że orkisz 'zakresie funkcji niewłaściwych – Ian

+0

Dzięki za poinformowanie mnie Kopiowanie kodu z osobnym komputerze, więc to. to nie jest sprawa – Brian

Odpowiedz

30

Spróbuj:

<script> 
    $(window).on('beforeunload', function(){ 
     return "This should create a pop-up"; 
    }); 
</script> 

Przykład: http://jsfiddle.net/AeztA/3/

+0

Dziękuję za odpowiedź, ale testowałem to i nie zadziałało, powiedziano mi też, aby nie używać alertu do tworzenia wyskakującego okienka. alert, więc ma tylko przycisk OK, aby go nacisnąć (brak anulowania), a także jesteś w trybie rozładunku, który będzie zbyt późno, aby spróbować zalogować kogoś, jeśli wychodzą z mojej strony – Brian

+0

Właśnie zaktualizowałem mój kod (poprzedni jeden działał wszędzie oprócz Chrome) działa teraz we wszystkich testowanych przeze mnie przeglądarkach – Joe

+0

Testuję twój nowy kod w IE, ale kiedy zmieniam URL lub wychodzę z okna, wyskakujące okienko nie pojawia się. Czy jest coś, co muszę zaimportować? – Brian

1

chciałbym dodać, że zorientowali się, że nie można użyć pusty ciąg w Firefoksie. Musi być co najmniej 1 pusty, na przykład jako powrót.

var text = 'Exit Message'; 

$(window).on('beforeunload', function(){ 
    return " " + text; 
});