WorkerNavigator: onLine 属性

Baseline 已广泛支持

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

注意:此功能仅在 Web Workers 中可用。

返回浏览器的在线状态。该属性返回一个布尔值,true 表示在线,false 表示离线。当浏览器连接到网络的可用性发生变化时,该属性会发送更新。当用户点击链接或脚本请求远程页面时,会发生更新。

例如,当用户在失去互联网连接后不久点击链接时,该属性应返回 false

浏览器对该属性的实现方式不同。

在 Chrome 和 Safari 中,如果浏览器无法连接到本地区域网络 (LAN) 或路由器,则表示离线;所有其他情况都返回 true。因此,虽然您可以假设当浏览器返回 false 值时表示离线,但您不能假设 true 值一定意味着浏览器可以访问互联网。您可能会得到误报,例如计算机运行虚拟化软件,该软件具有始终“连接”的虚拟以太网适配器。因此,如果您确实想确定浏览器的在线状态,则应开发额外的检查方法。要了解更多信息,请参阅 2011 年的文章 在离线状态下工作

在 Firefox 中,将浏览器切换到离线模式会发送一个 false 值。

online 是一个布尔值,truefalse

示例

基本用法

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

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

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

监听网络状态的变化

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

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

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

规范

规范
HTML
# dom-navigator-online-dev

浏览器兼容性