当限制 chrome 离线时 navigator.onLine 仍然是真的

when throttling chrome to offline the navigator.onLine is still true

chrome 开发工具网络节流脱机仍将 navigatior.onLine 显示为 true

我想测试 webapp 的离线体验。我正在检查设备是在线还是离线,然后调用不同的函数(即没有 ajax 调用)。

如何在不断开计算机连接的情况下使用 chrome 存档离线行为。我仍然需要其他服务的连接。

试试这个。

 window.addEventListener('online', onOnline);
 window.addEventListener('offline', onOffline);

function onOnline() { 
  window.isOnline = true;
  // do what you want 
}

function onOffline() {
  window.isOnline=false 
  // do what you want
}

只设置navigator.onLine = false不行,但是可以完全覆盖"onLine" 属性:

Object.defineProperty(navigator, "onLine", {value: false})

如果您想稍后恢复它,请保留对旧 属性 描述符的引用:

var oldOnLineDescriptor = Object.getOwnPropertyDescriptor(
    navigator.constructor.prototype, "onLine")
// ...
Object.defineProperty(navigator, "onLine", oldOnLineDescriptor)