Ida Dieda: navigator.onLine Debakel

Hallo, ok, ich komm leider selber nicht drauf... :(

Folgender Code ist eigentlich selbsterklärend... sobald der Browser keine LAN / Router Verbindung herstellen kann, soll "OFFLINE!" ausgegeben werden, in allen anderen Fällen "ONLINE!".


function statusChecken() {
	if (navigator.onLine) {
	document.body.innerHTML = "ONLINE!";
	} else {
	document.body.innerHTML = "OFFLINE!";
	}
}
window.addEventListener('online',  statusChecken);
window.addEventListener('offline',  statusChecken);

if (navigator.onLine) ... funktioniert, in die Funktion mit einem EventListener verpackt allerdings nicht. ??? Ich bin mir sicher, dass ich hier was relativ offensichtliches übersehe, ich komm leider trotzdem einfach nicht weiter!

Danke für eure Ratschläge! LG, Ida

  1. Hello,

    woher kommt denn das Dokument, in dem das Javascript notiert ist?

    Liebe Grüße
    Tom S.

    --
    Es gibt nichts Gutes, außer man tut es!
    Das Leben selbst ist der Sinn.
  2. Hallo,

    
    > window.addEventListener('online',  statusChecken);
    > window.addEventListener('offline',  statusChecken);
    
    

    ändert sich der Onlinestatus denn?

    Gruß
    Jürgen

  3. Hallo Ida,

    habe das gerade mal in Chrome und Firefox angeschaut.

    In Chrome kann ich in den Entwickler-Tools per Checkbox "offline" simulieren und dein Script funktioniert damit perfekt.

    Im Firefox gibt in Dateimenü den Punkt "offline arbeiten", damit hat dein Script auch funktioniert.

    Netzwerkstecker ziehen hat in Chrome die Events geworfen, im Firefox merkwürdigerweise nicht.

    Welchen Browser verwendest Du (in welcher Version), auf welchem Betriebssystem? Und wie erzeugst Du für deinen Test den "Offline-Status"?

    Rolf

    --
    sumpsi - posui - clusi
  4. Hallo Ida Dieda,

    das Scripting ist in Ordnung; es kommt darauf an, wann der Browser eine Statusänderung erkennt - also der Eventhandler anspringt - und damit die Funktion aufruft; vgl. hier die Hinweise zur Implementierung der Funktion bei MDN.

    Grüße, Martl

    1. @@Martl

      Hinweise zur Implementierung der Funktion bei MDN.

      Das liest sich so wie „nicht verwenden, Kinder!“

      Wozu sollte man das eigentlich auch brauchen?

      Mich würde eher interssieren, ob eine Ressource geladen werden konnte als ob eine Netzverbindung besteht.

      LLAP 🖖

      --
      “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
      1. Hello,

        Mich würde eher interssieren, ob eine Ressource geladen werden konnte als ob eine Netzverbindung besteht.

        Ob eine Netzverbindung besteht, geht den Browser mMn ja eigentlich auch nichts an, solange er sie nicht selber nutzen will. Und das sollte er bei HTTP (und "close" ja nur solange, wie der Request unbeantwortet blieb oder bei "keep alive" bis kurze Zeit danach.

        Deshalb fragte ich, woher denn das Dokument eigentlich kommt, in dem das JavaScript notiert wurde. Da müsste also mMn ein Ticker rein, der alle n Sekunden einen XHR absetzt, oder?

        Liebe Grüße
        Tom S.

        --
        Es gibt nichts Gutes, außer man tut es!
        Das Leben selbst ist der Sinn.