API onLine не работает ни в одном браузере - PullRequest
0 голосов
/ 27 марта 2019

navigator.onLine всегда возвращает true, а события online и offline не запускаются для этого простого куска кода ни в Firefox 66.0.1, ни в Chrome 73 в 64-битной Windows 7.

let statusElement = document.getElementById("status");
statusElement.innerText = navigator.onLine ? "online." : "offline.";

function updateStatus(event) {
    statusElement.innerText = `${event.type}.`;
}

window.addEventListener('offline', updateStatus);
window.addEventListener('online', updateStatus);

Где HTML прост это:

<h1>You are <span id = "status"></span></h1>

1 Ответ

0 голосов
/ 05 апреля 2019

Я только что сменил машину, и тот же код отлично работает на другой машине.

Я понял, что на старой машине это не работает, потому что у меня всегда был активный IP-адрес.Это был IP-адрес, который был выделен для моей машины виртуальной коробкой Oracle.Я выяснил это, запустив ipconfig на своей машине, и увидел, что независимо от того, что я делал, у меня всегда была виртуальная коробка с моей Ethernet-картой.

И поскольку в документации по этой функции сказано, что она будетпоказать состояние онлайн , если устройство подключено к сети, что означает любую сеть, т. е. если он имеет сетевой доступ любая сортировка.

Поэтому предполагается, что этот метод не очень надежен, если вы действительно хотите знать, есть ли у пользователя активное подключение к Интернету, хотя он работает в большинстве случаев.

Дело решено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...