2010-05-06 15 views
6

navigator.onLine nadal zwraca wartość true, gdy wyłączam Wi-Fi (lotnisko w moim notebooku w systemie OS X). Jest to zachowanie sprzeczne z intuicją. Ale kiedy ustawię "praca offline" w przeglądarce takiej jak Firefox, to poprawnie zwraca wartość false. Czy to jest oczekiwane?navigator.onLinia nadal jest prawdą po wyłączeniu WiFi, wartość false po ustawieniu "pracy offline" w przeglądarce

alert(navigator.onLine ? "online" : "offline"); 
+0

wdrażanie Firefoksa (i IE i Opera) jest błędna. Zobacz mój komentarz do tego efektu tutaj: https://bugzilla.mozilla.org/show_bug.cgi?id=654579#c9 – thewoolleyman

Odpowiedz

3

Tak. Przeglądarka nie udostępnia informacji o połączeniach sieciowych do strony, ale raczej używa statusu Pracuj w trybie offline jako wartości.

+0

Wydaje się dziwne, ponieważ jeśli wyłączę Wi-Fi i komórkową transmisję danych, włączając tryb samolotowy na iPhonie , a następnie powraca do tej strony bez ponownego ładowania, zwraca wartość true jako offline (co jest poprawne). – chimerical

+0

Przeglądarki mogą chcieć wykryć, czy łączność sieciowa jest wyłączona *, a następnie * ustawić zmienną Pracuj w trybie offline na "fałsz". Jednak użytkownik może zawsze zmienić tę zmienną samodzielnie. –

0

Użyj window.addEventListener do wykrywania aktualizacji sieciowych:

window.addEventListener('online', amIOnline); 
window.addEventListener('offline', amIOffline); 

function amIOnline(){ 
    console.log('online'); 
} 

function amIOffline(){ 
    console.log('offline'); 
} 
Powiązane problemy