首页 > HTML5网络状态检测

HTML5网络状态检测

看到《JavaScript高级程序设计》 23章离线应用于客户端存储,写道可以用navigator.onLine来检测当前网络状态。
于是顺手写了个判断:

if (navigator.onLine) {
    alert("有网")
}else{
    alert("没网");
};

可是当在chrome和火狐上,无论是否有网,都提示「有网」。在IE上能准确提示。

按说我的浏览器都是最新的,满足书上说的浏览器的要求,请问这有可能是怎么回事?


断网的定义不是 是否连接互联网.
而是 是否有网卡活动.

比如:
如果你有个 虚拟机桥接的网卡 就算拔掉网线浏览器也是认为你有网络.


这里有一些细节替楼主补充一下 :

Firefox

只与「脱机工作」开关有关,而跟你真的上不上得了网没有关系。

Chrome

取值并不是实时的,一般得等5秒左右。

其他一些细节题主可以访问 https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/onLin... ,并且在 http://html5-demos.appspot.com/static/navigator.onLine.html 可以对这个 API 做一些简单的测试。

【热门文章】
【热门文章】