检测navigator.online上的更改

时间:2011-08-11 21:37:15

标签: javascript onchange navigator

如何检测导航器是否将您的状态更改为在线/离线?

类似的东西:

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

3 个答案:

答案 0 :(得分:3)

这样的事情(不是每个浏览器都支持这些事件,目前只有IE 8,9和FF> 3支持这些事件):

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");};
}

浏览器支持各不相同,请查看:http://help.dottoro.com/ljnasgpu.php

答案 1 :(得分:2)

如果需要更多跨浏览器兼容,则必须轮询navigator.onLine属性。

var status = document.getElementById('status')

setInterval(function () {
  status.innerHTML = navigator.onLine ? 'online' : 'offline';  
}, 250);

演示: http://html5demos.com/nav-online

答案 2 :(得分:1)

借助body上的类和此代码,您可以找到

window.ononline = function() {
    alert('You are now online');
}

window.onoffline = function() {
    alert('You are now offline');
}