window.navigator.onLine

« DOM 参考

概述

返回浏览器的联网状态.正常联网(在线)返回true,不正常联网(离线)返回false.一旦浏览器的联网状态发生改变,该属性值也会随之变化. 当用户点击链接或者脚本进行网络请求时,如果发现浏览器连接不上互联网.则该属性会被赋值为false.

各浏览器对该属性的实现有些不同.

在Chrome和Safari中,如果浏览器连接不上局域网 (LAN)或者路由器,就是离线状态; 其他情况都是在线状态. 所以当该属性值为false的时候,你可以说浏览器不能正常联网, 但如果该属性值为true的时候, 并不意味着浏览器一定能连接上互联网.还有其他一些可能引起误判的原因,比如你的电脑安装了虚拟化软件,可能会有一个虚拟网卡.它总是显示正常联网.因此,如果你想得到浏览器确切的联网状态,应该使用其他额外的检查手段.

在Firefox和Internet Explorer中, 如果浏览器处于"脱机工作"状态,则返回 false,其他情况都返回true.

你可以在 window.onOnline和window.onOffline上监听事件,来获取浏览器联网状态的改变情况.

语法

online = window.navigator.onLine;

online是个布尔值 truefalse.

例子

查看 在线演示.

想要查看你是否连接上了互联网, 判断 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
Mac: 14
Chrome OS: 13
Linux: Always returns true

For history, see crbug.com/7469

Not supported
bug 336359
bug 426932
bug 620472

bug 654579

 

? Not supported 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 并不检测浏览器是否能真正连接上互联网,而是,除了在浏览器"脱机工作"开启时返回false,其他情况下都返回 true.

** 早起版本的Chrome,浏览器处于离线状态.在打开第一个标签时.该属性值会返回true,随后就会返回正确的联网状态了.

注意

查看 Online/Offline Events‎ 来了解更多的关于该特性的介绍.

规范

 HTML 5 Working draft

相关链接

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

Document Tags and Contributors

Contributors to this page: ziyunfei
最后编辑者: ziyunfei,