Javascript 一劳永逸,navigator.onLine做什么?

Javascript 一劳永逸,navigator.onLine做什么?,javascript,html,Javascript,Html,我看过上千篇帖子,有人问如何用javascript检测互联网连接,总有一个人说使用navigator.onLine,另一个人说它不可靠,只告诉你连接是否可用,而不是你是否连接 底线是,navigator.onLine是否会告诉我,即使3G/4G和WiFi已打开且未处于飞行模式或其他任何状态,用户是否因覆盖率低而无法联系该服务器?只是您的平均死区。根据MDN,它在浏览器上的实现有所不同 我假设使用WebKit浏览器,这不是一种可靠的方式来判断浏览器是否可以访问Internet,只是某种形式的网络

我看过上千篇帖子,有人问如何用javascript检测互联网连接,总有一个人说使用navigator.onLine,另一个人说它不可靠,只告诉你连接是否可用,而不是你是否连接


底线是,navigator.onLine是否会告诉我,即使3G/4G和WiFi已打开且未处于飞行模式或其他任何状态,用户是否因覆盖率低而无法联系该服务器?只是您的平均死区。

根据MDN,它在浏览器上的实现有所不同

我假设使用WebKit浏览器,这不是一种可靠的方式来判断浏览器是否可以访问Internet,只是某种形式的网络访问。

来自:

浏览器以不同的方式实现此属性

在Chrome和Safari中,如果浏览器无法连接到局域网(LAN)或路由器,则浏览器处于脱机状态;所有其他条件都返回true。因此,虽然您可以假设浏览器在返回假值时处于脱机状态,但不能假设真值必然意味着浏览器可以访问internet。您可能会得到误报,例如计算机运行的虚拟化软件具有始终“连接”的虚拟以太网适配器。因此,如果您真的想确定浏览器的联机状态,您应该开发其他检查方法。要了解更多信息,请参阅HTML5 Rocks文章

在Firefox和Internet Explorer中,将浏览器切换到脱机模式会发送错误值。所有其他条件返回一个真值


好吧。如果它工作可靠,这将是一个了不起的工具。谢谢你的简明摘录。