在线API在任何浏览器中均不起作用

时间:2019-03-27 11:04:19

标签: javascript html5

navigator.onLine始终返回true,而在Firefox 66.0.1或64位的Chrome 73中,此简单代码段均未触发onlineoffline事件位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 :(得分:0)

我刚刚更换了机器,并且相同的代码可以完美地在另一台机器上工作。

我发现它不能在旧计算机上运行的原因是因为我拥有一个始终处于活动状态的IP地址。这是Oracle的Virtual-Box分配给我的计算机的IP。我在计算机上运行ipconfig时发现了这一点,发现无论做什么,我总是使用以太网卡安装Virtual-Box。

并且由于此功能的文档说如果计算机连接到网络,则表示在线的状态,这意味着任何网络,即具有 any 类别的网络访问权限。

因此,尽管您确实可以在大多数情况下使用此方法,但是可以推断出,如果您想真正知道用户是否具有活动的Internet连接,则此方法并不是十分可靠。

案件解决了。