/ / Wenn Chrome auf Offline gedrosselt wird, ist der navigator.onLine immer noch wahr - Javascript, Google-Chrome-Devtools, Offline

Wenn Sie Chrome auf Offline beschränken, ist die navigator.onLine immer noch zutreffend - Javascript, google-chrome-devtools, offline

Chrome Dev Tools Netzwerk Throttling offline immer noch zeigt navigatior.onLine wie wahr.

Ich möchte die Offline-Erfahrung für eine Webapp testen. Ich überprüfe, ob das Gerät online oder offline ist, und rufe dann verschiedene Funktionen auf (keine Ajax-Aufrufe d. H.).

Wie kann ich ein Offline-Verhalten mit Chrome archivieren, ohne meinen Computer zu trennen? Ich brauche noch die Verbindung für andere Dienste.

Antworten:

1 für die Antwort № 1

Einfach einstellen navigator.onLine = false funktioniert nicht, aber Sie können die "onLine" -Eigenschaft vollständig überschreiben:

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

Wenn Sie es später wiederherstellen möchten, behalten Sie einen Verweis auf den alten Eigenschaftsdeskriptor bei:

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

0 für die Antwort № 2

Versuche dies.

 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
}