The following code is an alternative to using navigator.onLine – by checking whether the server is reachable.
‘Simple’ question – how do I make it work?
function serverReachable() {
// IE vs. standard XHR creation
var x = new ( window.ActiveXObject || XMLHttpRequest )( "Microsoft.XMLHTTP" ),
s;
x.open(
// requesting the headers is faster, and just enough
"HEAD",
// append a random string to the current hostname,
// to make sure we're not hitting the cache
"//" + window.location.hostname + "/?rand=" + Math.random(),
// make a synchronous request
false
);
try {
x.send();
s = x.status;
// Make sure the server is reachable
return ( s >= 200 && s < 300 || s === 304 );
// catch network & other problems
} catch (e) {
return false;
}
}
The above code was taken from the article: http://louisremi.com/2011/04/22/navigator-online-alternative-serverreachable/ but I can’t work out why it doesn’t work.
You can not pick any random server because of the same origin policy. You can only do your local domain that you are currently on.