2012-10-25 33 views
10

我見過有人問如何檢測互聯網連接在JavaScript中的一千個職位,總有一個人說使用navigator.online和另一個說這是不可靠的,只告訴你,如果一個連接可用,不是如果你連接。一勞永逸,navigator.online做什麼?

底線,將navigator.online告訴我,即使3G/4G和WiFi打開,並且他們不處於飛行模式或其他任何東西,用戶由於覆蓋率較差而無法聯繫服務器?只是你的平均死亡區。

+1

https://developer.mozilla.org/en-US/docs/DOM/window.navigator.onLine – Mahn

+1

http://labs.ft.com/2012/08/ navigator-online-here-be-dragons/ – CodeReaper

回答

9

MDN article about navigator.onLine

瀏覽器不同的方式實現這個屬性。

在Chrome和Safari中,如果瀏覽器無法連接到局域網(LAN)或路由器,則它處於脫機狀態;所有其他條件返回true。因此,儘管您可以假設瀏覽器在返回錯誤值時處於脫機狀態,但您不能認爲真正的值必然意味着瀏覽器可以訪問互聯網。您可能會得到誤報,例如在計算機正在運行具有始終「連接」的虛擬以太網適配器的虛擬化軟件的情況下。因此,如果你真的想確定瀏覽器的在線狀態,你應該開發額外的檢查手段。要了解更多信息,請參閱HTML5 Rocks文章Working Off the Grid

在Firefox和Internet Explorer中,將瀏覽器切換到脫機模式會發送錯誤值。所有其他條件返回真值

+0

好了。如果它可靠地工作,這將是一個了不起的工具。感謝您的簡明摘錄。 – jmease

相關問題