2010-05-06 26 views
6

當我關閉Wi-Fi(我的筆記本電腦在OS X上的機場)時,navigator.onLine仍然恢復正常。這是違反直覺的行爲。但是,當我在Firefox等瀏覽器中設置「脫機工作」時,它會正確返回false。這是預期的嗎?navigator.onLine在關閉WiFi時仍然正確,當在瀏覽器中設置「離線工作」時爲false

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

Firefox的(和IE的和Opera的)的實現是錯誤的。看到我的評論在這裏:https://bugzilla.mozilla.org/show_bug.cgi?id = 654579#c9 – thewoolleyman 2012-03-11 09:21:02

回答

3

是的。瀏覽器不向網頁提供網絡連接信息,而是使用「脫機工作」狀態作爲值。

+0

這似乎很奇怪,因爲如果我通過打開iPhone上的飛行模式關閉Wi-Fi和蜂窩數據,然後返回到該頁面而不重新加載,它將以離線形式返回true(這是正確的)。 – chimerical 2010-05-06 16:10:33

+0

瀏覽器可能需要檢測網絡連接是否中斷*,然後*將脫機工作變量設置爲「false」。但是,用戶可以自己改變這個變量。 – 2010-05-08 00:27:54

0

使用window.addEventListener來檢測網絡更新:

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

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

function amIOffline(){ 
    console.log('offline'); 
} 
相關問題