if(navigator.onLine){
...}else{ ...}
非常简单,但是并不准确-根据MDN的描述:
navigator.onLine只会在机器未连接到局域网或路由器时返回false,其他情况下均返回true。
也就是说,机器连接上路由器后,即使这个路由器没联通网络,navigator.onLine仍然返回true。
可以用jQuery中的ajax超时判断:
$.ajaxSetup({timeout: 1, // 1秒超时
error: function(request, status, maybe_an_exception_object) {
if(status == 'timeout')
alert("网断了")
}
})
代码如下:var EventUtil = {
addHandler: function (element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false)
} else if (element.attachEvent) {
element.attachEvent("on" + type, handler)
} else {
element["on" + type] = handler
}
},
removeHandler: function (element, type, handler) {
if (element.removeEventListener) {
element.removeEventListener(type, handler, false)
} else if (element.detachEvent) {
element.detachEvent("on" + type, handler)
} else {
element["on" + type] = null
}
}
}
var dom = document.createElement('img')
dom.style = 'display:none'
dom.src = 'http://www.baidu.com/img/bdlogo.gif'
dom.id = 'map_img'
EventUtil.addHandler(dom, 'error', function(){
alert('你的电脑没有链接网络,连接上网络后才能打开地图!')
})
document.body.appendChild(dom)