2009-10-20 12 views
17

Czy mogę polegać na tym, że zdarzenie wyładowania okna zostanie uruchomione, gdy użytkownik zamknie kartę/okno/przeglądarkę?Zdarzenie rozładowania okna DOM, czy jest niezawodne?

Edit:

Znaleziony listę tego, co wyzwala zdarzenie wyładowania w IE. http://msdn.microsoft.com/en-us/library/ms536973%28VS.85%29.aspx

Chciałbym wiedzieć, w których przypadkach krawędziowe zdarzenie rozładowania nie zostanie uruchomione.

+0

musisz podać więcej przypadków użycia - co chcesz osiągnąć przy rozładowywaniu? Mogą istnieć inne sposoby implementacji tej funkcji, inne niż zdarzenia zwolnienia. – Chii

Odpowiedz

4

Nie we wszystkich okolicznościach nie. Przeglądarka może zawieść itp., Utrzymując wydarzenie w stanie spoczynku. Użytkownik może również używać dodatków takich jak Grease Monkey, aby zapobiec zdarzeniu.

+2

Dlatego właśnie powiedziałem "kiedy użytkownik się zamyka". Przeglądarka zawiesza się, przerwy w zasilaniu itp. to inny przypadek. – bhseo

+0

Cóż, użytkownik nadal może zamknąć przeglądarkę za pomocą zabicia zadania itp. – kemiller2002

+0

Jeśli polegasz na tym, aby wystrzelić, aby coś wyczyścić, nie możesz. – kemiller2002

8

Prawdopodobnie będziesz także chciał użyć zdarzenia "onbeforeunload", it provides more control niż zdarzenie "onunload".

Mimo to należy pamiętać, że: Opera nie uruchamia zdarzenia zwolnienia, gdy przeglądarka odświeża stronę lub używa przycisków wstecz/przewijania do przeglądania strony. Co gorsza, Opera nigdy nie uruchamia zdarzenia onbeforeunload. Jeśli więc wspierasz Operę - bądź świadomy tych problemów.

+0

Dzięki za informację o operze. – bhseo

Powiązane problemy