Navigator: onLine 属性

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

Navigator 接口的 onLine 属性返回设备是否已连接到网络,true 表示在线,false 表示离线。该属性的值会在浏览器检查其网络连接后发生变化,通常是在用户点击链接或脚本请求远程页面时。例如,当用户在失去互联网连接后不久点击链接时,该属性应返回 false。当其值发生变化时,会在 window 上触发 onlineoffline 事件。

浏览器和操作系统利用不同的启发式方法来确定设备是否在线。通常,连接到局域网 (LAN) 被视为在线,即使该局域网可能没有互联网访问。例如,计算机可能正在运行一个具有虚拟以太网适配器的虚拟化软件,这些适配器始终处于“连接”状态。在 Windows 上,在线状态取决于能否连接到 Microsoft 的某个服务器,即使计算机可以访问互联网,该服务器也可能被防火墙或 VPN 阻止。因此,此属性本质上是不可靠的,您不应根据在线状态禁用功能,而只能在用户似乎离线时提供提示。

布尔值。

示例

基本用法

要检查您是否在线,请查询 window.navigator.onLine,如下例所示:

js
if (navigator.onLine) {
  console.log("online");
} else {
  console.log("offline");
}

如果浏览器不支持 navigator.onLine,则上述示例将始终显示为 false/undefined

监听网络状态的变化

要查看网络状态的变化,请使用 addEventListener 来监听 window.onlinewindow.offline 事件,如下例所示:

js
window.addEventListener("offline", (e) => {
  console.log("offline");
});

window.addEventListener("online", (e) => {
  console.log("online");
});

规范

规范
HTML
# dom-navigator-online-dev

浏览器兼容性