Search code examples
javascriptonchangenavigator

detect change on navigator.online


How can I detect if the navigator changed your state to online/offline?

something like:

var oldState = navigator.onLine; 
window.navigator.onlinechange = function(evnt,newState) { 
         alert('your changed from' + oldState + ' to' + newState + 'state');
}

Solution

  • Something like this (not every browser supports these events, currently only IE 8,9 and FF > 3 support these events):

    var el = document.body;
    if (el.addEventListener) {
       el.addEventListener("online", function () {
         alert("online");}, true);
       el.addEventListener("offline", function () {
         alert("offline");}, true);
    }
    else if (el.attachEvent) {
       el.attachEvent("ononline", function () {
         alert("online");});
       el.attachEvent("onoffline", function () {
         alert("offline");});
    }
    else {
       el.ononline = function () {
         alert("online");};
       el.onoffline = function () {
         alert("offline");};
    }
    

    The browser support varies, check this out: http://help.dottoro.com/ljnasgpu.php