我在javascript中有一个事件监听器附加到offline
事件。在拔下以太网电缆或在调试器中设置offline
模式但在其他情况下无法正常工作(如打开AIRPLANE MODE或断开wifi)时,此功能正常。
$(window).on('offline',function(){alert('offline')});
答案 0 :(得分:0)
我认为你应该使用navigator.onLine
答案 1 :(得分:0)
多年后,我发现了一种更可靠的方法来附加事件以进行连接更改
navigator
对象具有一个connection
对象,而该对象又具有一个onchange
属性,该属性希望在发生连接更改时执行一个回调方法
navigator.connection.onchange=function()
{
if(navigator.onLine)
{
console.log('Connection is okay')
}
else
{
console.log('Connection lost')
}
}
但是...根据MDN,navigator.onLine
可能会返回误报
在Chrome和Safari中,如果浏览器无法连接到本地 局域网(LAN)或路由器,它处于脱机状态;所有其他条件 返回true。因此,当您可以假设浏览器处于脱机状态时, 它返回一个假值,您不能假设一个真值 必然意味着浏览器可以访问互联网。你可以 得到误报,例如在计算机处于故障状态时 运行具有虚拟以太网适配器的虚拟化软件 总是“连接”的。因此,如果您真的想 确定浏览器的在线状态,您应该开发 其他检查方法。