Javascript 如何检查用户是否有internet连接

Javascript 如何检查用户是否有internet连接,javascript,reactjs,web,cross-browser,Javascript,Reactjs,Web,Cross Browser,我需要根据React应用程序中的internet连接来设置调用哪个函数的条件,例如: if (connected) { call function Y() } else if (!connected) { call function X() } 我怎么能这么做?我已经用NetInfo和navigator.online试过了,但没能成功。来自navigator.online上的MDN文档: 如果浏览器不支持navigator.onLine它将始终显示为错误/未定义 要查看网络状态的更

我需要根据React应用程序中的internet连接来设置调用哪个函数的条件,例如:

if (connected) {
   call function Y()
} else if (!connected) {
   call function X()
}

我怎么能这么做?我已经用
NetInfo
navigator.online
试过了,但没能成功。

来自navigator.online上的MDN文档:

如果浏览器不支持
navigator.onLine
它将始终显示为错误/未定义

要查看网络状态的更改,请使用addEventListener进行侦听 对于window.online和window.offline上的事件,如 以下示例:

window.addEventListener('offline', function(e) {
console.log('offline'); });

window.addEventListener('online', function(e) { console.log('online');
});

从navigator.onLine上的MDN文档:

如果浏览器不支持
navigator.onLine
它将始终显示为错误/未定义

要查看网络状态的更改,请使用addEventListener进行侦听 对于window.online和window.offline上的事件,如 以下示例:

window.addEventListener('offline', function(e) {
console.log('offline'); });

window.addEventListener('online', function(e) { console.log('online');
});

浏览器以不同的方式实现navigator.online属性

在Chrome和Safari中,如果浏览器无法连接到局域网(LAN)或路由器,则浏览器处于脱机状态;所有其他条件都返回true

在Firefox和Internet Explorer中,将浏览器切换到脱机模式会发送错误值。在Firefox 41之前,所有其他条件都返回真值;在Windows上的Nightly 68上测试实际行为表明,它只会寻找像Chrome和Safari这样的LAN连接,从而产生误报

我建议听一下在线活动,如果你得到了真实的答案,那就加倍确保向任何公共领域(如谷歌或你自己的领域)发出ajax请求

[根据][1]
[1]: https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/onLine浏览器以不同方式实现navigator.online属性

在Chrome和Safari中,如果浏览器无法连接到局域网(LAN)或路由器,则浏览器处于脱机状态;所有其他条件都返回true

在Firefox和Internet Explorer中,将浏览器切换到脱机模式会发送错误值。在Firefox 41之前,所有其他条件都返回真值;在Windows上的Nightly 68上测试实际行为表明,它只会寻找像Chrome和Safari这样的LAN连接,从而产生误报

我建议听一下在线活动,如果你得到了真实的答案,那就加倍确保向任何公共领域(如谷歌或你自己的领域)发出ajax请求

[根据][1]
[1]: https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/onLine

你不是在找什么吗?正如我说的,我试过这个,但是当我同时操控
navigator.online
window.navigator.online
时,我得到了
未定义的
,只是为了确保你没有弄乱外壳(即必须是
在线
,而不是
在线
)你是对的,我把它弄糟了。它现在可以用了。非常感谢你。你不是在找什么东西吗?正如我说的,我试过这个,但是当我同时操控
navigator.online
window.navigator.online
时,我得到
未定义的
只是为了确保,你没有弄乱外壳(也就是说,它必须是
在线的
,而不是
在线的
)你是对的,我确实把它弄糟了。它现在可以工作了。非常感谢你