如何通过javascript检查浏览器中的在线/离线状态?

如何通过javascript检查浏览器中的在线/离线状态?,javascript,html,ajax,offline,Javascript,Html,Ajax,Offline,我想要一个简单的代码,检查浏览器内部的互联网连接,以及一个处理各种代码的处理,这些代码将返回 我已经尝试了一个http get请求来处理返回的状态代码,但是最后,我遇到了一些关于同源策略的问题 我还尝试了ononline和onoffline事件,但这些都是经过修饰的,在我的目标浏览器中不起作用 我的第三个选择是使用navigator.onLine。当浏览器连接到Internet时,输出为true。但是,当我的浏览器没有连接时,navigator.onLine的回答不是错误的 我的主要用例是检查浏

我想要一个简单的代码,检查浏览器内部的互联网连接,以及一个处理各种代码的处理,这些代码将返回

我已经尝试了一个http get请求来处理返回的状态代码,但是最后,我遇到了一些关于同源策略的问题

我还尝试了ononline和onoffline事件,但这些都是经过修饰的,在我的目标浏览器中不起作用

我的第三个选择是使用navigator.onLine。当浏览器连接到Internet时,输出为true。但是,当我的浏览器没有连接时,navigator.onLine的回答不是错误的

我的主要用例是检查浏览器是否连接了internet。如果他连接了互联网,那么他应该打开www.abc.de 但是,如果没有Internet连接,他应该使用localhost:8080/abc打开一个本地应用程序。

尝试使用这个

window.navigator.onLine;
有关更多信息,请参阅

试着用这个

window.navigator.onLine;
有关更多信息,请参阅


原则上这是

但我个人会尝试类似的方法

if (location.host.indexOf("localhost")==-1) { // we are not already on localhost
  var img = new Image();
  img.onerror=function() { location.replace("http://localhost:8080/abc"); }
  img.src="http://servertotest.com/favicon.ico?rnd="+new Date().getTime();
}

原则上这是一个复制品

但我个人会尝试类似的方法

if (location.host.indexOf("localhost")==-1) { // we are not already on localhost
  var img = new Image();
  img.onerror=function() { location.replace("http://localhost:8080/abc"); }
  img.src="http://servertotest.com/favicon.ico?rnd="+new Date().getTime();
}

要检测脱机和联机状态,您需要使用以下示例。

代码示例
//如果用户处于脱机状态,则将“is offline”类添加到html元素中,并在再次联机时删除
addEventListener('load',function()){
函数updateOnlineStatus(事件){
if(navigator.onLine){
document.documentElement.classList.remove('is-offline');
document.querySelector('.connection status')。innerHTML='Online';
}否则{
document.documentElement.classList.add('is-offline');
document.querySelector('.connection status')。innerHTML='Offline';
}
}
window.addEventListener(“联机”,updateOnline状态);
window.addEventListener('offline',updateOnlineStatus);
});
。连接状态{
字号:19px;
字号:600;
颜色:#58b05c;
}
。处于脱机状态。连接状态{
颜色:红色;
}

在线


要检测脱机和联机状态,需要使用以下示例。

代码示例
//如果用户处于脱机状态,则将“is offline”类添加到html元素中,并在再次联机时删除
addEventListener('load',function()){
函数updateOnlineStatus(事件){
if(navigator.onLine){
document.documentElement.classList.remove('is-offline');
document.querySelector('.connection status')。innerHTML='Online';
}否则{
document.documentElement.classList.add('is-offline');
document.querySelector('.connection status')。innerHTML='Offline';
}
}
window.addEventListener(“联机”,updateOnline状态);
window.addEventListener('offline',updateOnlineStatus);
});
。连接状态{
字号:19px;
字号:600;
颜色:#58b05c;
}
。处于脱机状态。连接状态{
颜色:红色;
}

在线


这是件好事。谢谢你的信息这对我来说很好。没有Internet连接时,将加载所需的脱机页面。但是:如何实现在成功加载时另一个页面正在加载?onload是错误的选项,因为如果服务器已启动,则每次要加载“”时它都是真的?您可以使用
img.onload=function(){if(location.host.indexOf(“servertotest”)=-1)location.replace(“http://servertotest.com/abc“”}
这将从本地主机或文件系统重定向到服务器上的url,这是一件好事。谢谢你的信息这对我来说很好。没有Internet连接时,将加载所需的脱机页面。但是:如何实现在成功加载时另一个页面正在加载?onload是错误的选项,因为如果服务器已启动,则每次要加载“”时它都是真的?您可以使用
img.onload=function(){if(location.host.indexOf(“servertotest”)=-1)location.replace(“http://servertotest.com/abc“”}
将从本地主机或文件系统重定向到服务器上的url