簡體   English   中英

“離線”事件不會被觸發

[英]“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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM