Ответ 1
Из статьи MDN о navigator.onLine
:
Браузеры реализуют это свойство по-разному.
В Chrome и Safari, если браузер не может подключиться к локальной сети (LAN) или маршрутизатору, он отключен; все остальные условия верны. Поэтому, когда вы можете предположить, что браузер отключен, когда он возвращает ложное значение, вы не можете предположить, что истинное значение обязательно означает, что браузер может получить доступ к Интернету. Вы можете получать ложные срабатывания, например, в тех случаях, когда на компьютере работает программное обеспечение для виртуализации с виртуальными адаптерами Ethernet, которые всегда "подключены". Поэтому, если вы действительно хотите определить онлайн-статус браузера, вы должны разработать дополнительные средства для проверки. Чтобы узнать больше, см. Статью "HTML5 Rocks", Работа с сеткой.
В Firefox и Internet Explorer переключение браузера в автономный режим отправляет ложное значение. Все остальные условия возвращают истинное значение