[英]“Offline” event not get fired
我有一個事件偵聽器附加到 javascript 中的offline
事件。 當拔下以太網電纜或在調試器中設置offline
模式時,這工作正常,但在其他情況下不起作用,例如打開飛機模式或斷開 wifi。
$(window).on('offline',function(){alert('offline')});
我認為你應該使用 navigator.onLine
多年后,我找到了一種更可靠的方法來附加連接更改的事件
navigator
對象具有一個connection
,該connection
又具有一個onchange
屬性,該屬性期望在發生連接更改時執行回調方法
navigator.connection.onchange=function()
{
if(navigator.onLine)
{
console.log('Connection is okay')
}
else
{
console.log('Connection lost')
}
}
但是...根據 MDN, navigator.onLine
可能會返回誤報
在 Chrome 和 Safari 中,如果瀏覽器無法連接到局域網(LAN)或路由器,則處於離線狀態; 所有其他條件返回真。 因此,雖然您可以假設瀏覽器在返回假值時處於離線狀態,但您不能假設真值必然意味着瀏覽器可以訪問互聯網。 您可能會得到誤報,例如在計算機運行虛擬化軟件的情況下,該軟件具有始終“連接”的虛擬以太網適配器。 因此,如果你真的想確定瀏覽器的在線狀態,你應該開發額外的檢查手段。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.