导航器:onLine 属性

返回浏览器的在线状态。该属性返回一个布尔值,true 表示在线,false 表示离线。该属性会在浏览器连接网络的能力发生变化时发送更新。更新发生在用户点击链接或脚本请求远程页面时。例如,当用户在断开互联网连接后立即点击链接时,该属性应返回 false

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

在 Chrome 和 Safari 中,如果浏览器无法连接到局域网 (LAN) 或路由器,则处于离线状态;所有其他情况都返回 true。因此,虽然您可以假设浏览器在返回 false 值时处于离线状态,但您不能假设 true 值一定表示浏览器可以访问互联网。您可能会得到误报,例如,在计算机运行始终“连接”的虚拟以太网适配器的虚拟化软件的情况下。因此,如果您确实想要确定浏览器的在线状态,则应开发其他检查方法。

在 Firefox 中,将浏览器切换到离线模式会发送 false 值。在 Firefox 41 之前,所有其他情况都返回 true 值;在 Windows 上测试 Nightly 68 的实际行为表明,它只像 Chrome 和 Safari 一样查找 LAN 连接,这会导致误报。

您可以通过监听 onlineoffline 事件来查看网络状态的变化。

布尔值。

示例

基本用法

要检查您是否在线,请查询 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

浏览器兼容性

BCD 表格仅在浏览器中加载