2012-04-28 57 views
0

我想檢查與JavaScript的連接,但我已經嘗試了很多的教程,但任何爲我工作。檢查連接javascript

比如我有這個代碼,但不工作

<!DOCTYPE HTML> 
<html> 
<head> 
    <title>Online status</title> 
    <script>  
    function updateIndicator() 
    { 
    document.getElementById('indicator').textContent = navigator.onLine ? 'online' : 'offline';  
    } 
    </script> 
</head> 
<body onload="updateIndicator()" ononline="updateIndicator()"  onoffline="updateIndicator()"> <p>The network is: <span 
    id="indicator">(state unknown)</span> 
</body> 
</html> 

一些幫助?謝謝。

+1

你可能要參考[文章](https://developer.mozilla.org/en/DOM/window.navigator.onLine) – Joseph 2012-04-28 09:38:27

+0

我不是JavaScript開發,但它依然清晰對我來說,如果你包括到底發生了什麼問題,它會幫助專家回答你的問題。它究竟如何「不起作用」?你有錯誤信息嗎? – Verbeia 2012-04-28 09:41:09

+0

它爲我工作。至少它說我在線。 http://jsfiddle.net/6Gj4v/ – 2012-04-28 09:46:38

回答

2

編輯:似乎這是一個設置問題,將離開這個無論如何,因爲它可能是有用的情況下ononline和onoffline不支持。

我不確定ononline和onoffline是否會得到很好的支持,但您可以設置一個間隔來檢查狀態並相應地更新它。這個小小提琴作品(只停留您的網絡連接和狀態將切換到離線)

http://jsfiddle.net/vpG5b/1/

您可以調整時間間隔爲必要的,但500毫秒應該是足夠好,而不是過於苛刻,我加檢查只更新狀態(更少的DOM操作),這樣你甚至可以擁有離線/在線處理程序。

var handler = { 
    online: function() { 
     alert('online'); 
    }, 
    offline: function() { 
     alert('offline'); 
    } 
}; 

function isOnline() { 

    var status = navigator.onLine ? 'online' : 'offline', 
     indicator = document.getElementById('indicator'), 
     current = indicator.textContent; 

    // only update if it has change 
    if (current != status) { 

     // update DOM 
     indicator.textContent = status; 

     // trigger handler 
     handler[status](); 
    }; 
}; 

setInterval(isOnline, 500); 
isOnline();​