0

我正在尝试检查与 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>

一些帮助?谢谢。

4

1 回答 1

2

编辑:似乎这是一个设置问题,无论如何都会留下它,因为它在不支持在线和离线的情况下可能很有用。

我不确定在线和离线是否会得到很好的支持,但您可以设置一个时间间隔来检查状态并相应地更新它。这个小小提琴有效(只需停止您的网络连接,状态将切换为离线)

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();​
于 2012-04-28T09:57:38.840 回答