如何设置' if'和'其他'在javascript onLine Checker?

时间:2015-07-03 02:23:31

标签: javascript html5 if-statement offline

onLine检查程序运行正常,但我想设置' if'和'其他'在javascript中。

如果状态在线,则很实用...您必须转移到另一个链接。 如果状态为离线状态,则状态必须显示此消息'重新连接...'直到设备连接。我希望在连接后再次检查' if'你通常必须转移到指定的路径。

以下是HTML代码:

<p>Current network status: <span id="status">checking...</span></p>

这是javascript代码:

var statusElem = document.getElementById('status');

setInterval(function () {
  statusElem.className = navigator.onLine ? 'online' : 'offline';
  statusElem.innerHTML = navigator.onLine ? 'online' : 'offline';  
  if ('status'=='online') {
    window.location = "http://www.google.com/";
  }
  else {
    statusElem.innerHTML = navigator.onLine ? 'Online' : 'Re-connecting...';  
  }
}, 250);

感谢您的时间:)

1 个答案:

答案 0 :(得分:1)

因为您想在线时重定向到新的网址,我认为您的代码可以像这样重写

var statusElem = document.getElementById('status');

setInterval(function () {
  if (navigator.onLine) {
    // you're online. Redirect to the desired URL
    // this will also clear the interval
    window.location = "http://www.google.com/";
  }
  else {
    // not online. Update the statusElem
    statusElem.className = 'offline';
    statusElem.innerHTML = 'Re-connecting';
  }
}, 250);

修改

如果您在新窗口中打开链接,则可能需要清除间隔,否则它将每1/4秒继续执行一次。您可以使用clearInterval方法停止间隔

var statusElem = document.getElementById('status');

var intervalId = setInterval(function () {
  if (navigator.onLine) {
    // clear the interval
    clearInterval(intervalId);

    // you're online. Redirect to the desired URL
    window.location = "http://www.google.com/";
  }
  else {
    statusElem.className = 'offline';
    statusElem.innerHTML = 'Re-connecting';
  }
}, 250);