Онлайн-API не работает ни в одном браузере

#javascript #html

#javascript #HTML

Вопрос:

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. онЛайн проверяет, подключен ли браузер к Интернету. вы пытались отключиться от Интернета? и все еще подключаетесь к Сети?

2. Что вы делаете, чтобы попытаться активировать статус вашего браузера онлайн / оффлайн?

3. @Quentin: Я отключился от Wi-Fi. Я нормально отключился, но API не показал никаких изменений в ответе. Затем я отключил аппаратный переключатель на своем ноутбуке, который представляет соединения Wifi и Bluetooth, и отключился от просмотра подключений Wifi. Изменений нет. Затем я выключил свой Wifi-маршрутизатор без изменений. Никаких событий не возникло.

Ответ №1:

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

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

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

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

Случай решен.