看到《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 做一些简单的测试。
断网的定义不是 是否连接互联网. 而是 是否有网卡活动.
比如: 如果你有个 虚拟机桥接的网卡 就算拔掉网线浏览器也是认为你有网络.
这里有一些细节替楼主补充一下 :
Firefox
只与「脱机工作」开关有关,而跟你真的上不上得了网没有关系。
Chrome
取值并不是实时的,一般得等5秒左右。
其他一些细节题主可以访问 https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/onLin... ,并且在 http://html5-demos.appspot.com/static/navigator.onLine.html 可以对这个 API 做一些简单的测试。
断网的定义不是 是否连接互联网.
而是 是否有网卡活动.
比如:
如果你有个 虚拟机桥接的网卡 就算拔掉网线浏览器也是认为你有网络.