JavaScript中判斷網(wǎng)絡(luò)狀態(tài)的幾種方法
1. 使用 Navigator onLine 屬性
Navigator onLine 屬性判斷瀏覽器是否在線,在線返回 true,離線返回 false;
Navigator onLine 是只讀屬性,所有主流瀏覽器都支持 onLine 屬性;
if (window.navigator.onLine) { console.log('網(wǎng)絡(luò)正常!'); } else { console.log('網(wǎng)絡(luò)中斷!'); }
2. 使用 ononline、onoffline 事件
這兩個方法屬于 “偵聽 器”,在網(wǎng)絡(luò)連接 / 斷開的瞬間會觸發(fā)(當(dāng)網(wǎng)絡(luò)從離線變?yōu)樵诰€或從在線變?yōu)殡x線時,分別觸發(fā)這兩個事件)。
注意:檢測 ononline 事件,要綁定在 window 對象上;
兼容 | 不兼容 | |
---|---|---|
attachEvent | IE7、IE8 | firefox、chrome、IE9、IE10、IE11、safari、opera |
addEventListener | firefox、chrome、IE、safari、opera | IE7、IE8 |
完整代碼:
<script type="text/javascript"> if (window.addEventListener) { window.addEventListener("online", () => { console.log('網(wǎng)絡(luò)連接恢復(fù)'); }, true); window.addEventListener("offline", () => { console.log('網(wǎng)絡(luò)連接中斷'); }, true); }else if (window.attachEvent) { window.attachEvent("ononline", () => { console.log('網(wǎng)絡(luò)連接恢復(fù)'); }); window.attachEvent("onoffline", () => { console.log('網(wǎng)絡(luò)連接中斷'); }); }else { window.ononline = () => { console.log('網(wǎng)絡(luò)連接恢復(fù)'); }; window.onoffline = () => { console.log('網(wǎng)絡(luò)連接中斷'); }; } </script>
總結(jié):
為了判斷是否離線,在頁面加載后,可先通過 navigator.onLine 取得初始的狀態(tài),然后通過ononline、onoffline 事件來確定網(wǎng)絡(luò)連接狀態(tài)是否變化。
一個缺點:navigator.onLine 和 online、offline事件卻不是萬能的,只能判斷無線和網(wǎng)線是否連接,而不能進(jìn)一步判斷該網(wǎng)絡(luò)是否能夠上網(wǎng)。
以上就是JavaScript中判斷網(wǎng)絡(luò)狀態(tài)的幾種方法的詳細(xì)內(nèi)容,更多關(guān)于JavaScript判斷網(wǎng)絡(luò)狀態(tài)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JavaScript可折疊區(qū)域?qū)崿F(xiàn)代碼
可折疊區(qū)域的基本思想:通過點擊某個地方來顯示或隱藏屏幕中的某個區(qū)域。2010-10-10js設(shè)置文本框中焦點位置在最后的示例代碼(簡單實用)
本篇文章主要是對js設(shè)置文本框中焦點位置在最后的示例代碼進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-03-03MUI 解決動態(tài)列表頁圖片懶加載再次加載不成功的bug問題
這篇文章主要介紹了MUI 解決動態(tài)列表頁圖片懶加載再次加載不成功的bug問題,解決方法很簡單的,需要的朋友可以參考下2017-04-04javascript 帶有滾動條的表格,標(biāo)題固定,帶排序功能.
帶有滾動條的表格,標(biāo)題固定,帶排序功能. 雖然經(jīng)測試有點問題,但編程思路很清晰,需要的朋友可以參考下。2009-11-11