如何在 javascript 在线检查器中设置 'if' 和 'else'?

How to set the 'if' and 'else' in javascript onLine Checker?

在线检查器 运行 很好,但我想在 javascript.

中设置 'if' 和 'else'

实用如果状态是在线...你必须转移到另一个link。 如果状态为离线...状态必须显示此消息 'Re-connecting...' 直到设备已连接。我希望在连接后它会再次检查 '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);

感谢抽出时间:)

因为你想重定向到一个新的 URL 如果你在线,我认为你的代码可以像这样重写

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);

编辑

如果您在新的 window 中打开 link,您可能需要清除间隔,否则它将继续每 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);