概述
返回浏览器的联网状态。正常联网(在线)返回true,不正常联网(离线)返回
false。
一旦浏览器的联网状态发生改变,该属性值也会随之变化。当用户点击链接或者脚本进行网络请求时,如果发现浏览器连接不上互联网,则该属性会被赋值为false。
各浏览器对该属性的实现有些不同。
在Chrome和Safari中,如果浏览器连接不上局域网 (LAN)或者路由器,就是离线状态;否则就是在线状态。所以当该属性值为false
的时候,你可以说浏览器不能正常联网,但如果该属性值为true的时候,并不意味着浏览器一定能连接上互联网。还有其他一些可能引起误判的原因,比如你的电脑安装了虚拟化软件,可能会有一个虚拟网卡,这时它总是会显示正常联网。因此,如果你想得到浏览器确切的联网状态,应该使用其他额外的检查手段。
在Firefox和Internet Explorer中,如果浏览器处于"脱机工作"状态,则返回 false,其他情况都返回
true
.
你可以在 window.onOnline和
window.onOffline
上监听事件,来获取浏览器联网状态的改变情况.
语法
online = window.navigator.onLine;
online
是个布尔值true
或 false
.
例子
查看 在线演示.
想要查看你是否连接上了互联网,查询window.navigator.onLine
的值是否为true
:
if (navigator.onLine) { alert('online') } else { alert('offline'); }
想要监听浏览器的联网状态, 使用window.onOnline和
window.onOffline
事件:
window.addEventListener("offline", function(e) {alert("offline");}) window.addEventListener("online", function(e) {alert("online");})
浏览器兼容性
Feature | Chrome** | Firefox (Gecko)* | Internet Explorer | Opera* | Safari (WebKit) |
---|---|---|---|---|---|
Basic support |
Windows: 11 For history, see crbug.com/7469 |
未实现
|
? | 未实现 | 5.0.4 |
Feature | Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Basic support | Android 2.2 (Faulty in a WebView component, see Issue 16760) | ? | ? | ? | ? |
* Firefox 4以上和 Opera 11.10以上的版本并不检测浏览器是否能真正连接上互联网,而是在浏览器禁用"脱机工作"模式时返回true,启用时返回false。
** 早期版本的Chrome在一个标签被首次打开时会错误地返回true,但随后就会返回正确的联网状态。
注意
查看 Online/Offline Events 来了解更多的关于该特性的介绍.
规范
相关链接
HTML5 Rocks: Working Off the Grid With HTML5 Offline
HTML5 Rocks: "Offline": What does it mean and why should I care?
Mozilla Blog: Offline Web Applications