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

編集: セットアップの問題のようですが、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();​
于 2012-04-28T09:57:38.840 に答える