2010-05-06 16 views
6

navigator.onLine vẫn trở lại đúng khi tôi tắt Wi-Fi (Sân bay trên máy tính xách tay của tôi trong OS X). Đây là hành vi phản trực giác. Nhưng khi tôi đặt "làm việc ngoại tuyến" trong một trình duyệt như Firefox, nó sẽ trả về false một cách chính xác. Đây có phải là dự kiến ​​không?navigator.onLine vẫn đúng khi tắt WiFi, sai khi đặt "làm việc ngoại tuyến" trong trình duyệt

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

thực hiện của Firefox (và IE và Opera) là sai. Xem nhận xét của tôi về hiệu ứng đó tại đây: https://bugzilla.mozilla.org/show_bug.cgi?id=654579#c9 – thewoolleyman

Trả lời

3

Có. Trình duyệt không cung cấp thông tin kết nối mạng cho trang, mà là sử dụng trạng thái của Work Offline làm giá trị.

+0

Có vẻ lạ vì nếu tôi tắt Wi-Fi và dữ liệu di động bằng cách bật chế độ trên máy bay trên iPhone , và sau đó quay trở lại trang đó mà không cần tải lại, nó trả về true như offline (đó là chính xác). – chimerical

+0

Trình duyệt có thể muốn phát hiện xem kết nối mạng có bị tắt * và sau đó * đặt biến Làm việc ngoại tuyến thành 'false'. Tuy nhiên, người dùng luôn có thể tự thay đổi biến này. –

0

Sử dụng window.addEventListener để phát hiện các cập nhật mạng:

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

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

function amIOffline(){ 
    console.log('offline'); 
}