2017-03-01 46 views
0

我想要一个简单的代码,用于检查浏览器内部的互联网连接以及处理各种代码的处理,这些代码将会返回。如何通过javascript在浏览器中查看在线/离线状态?

我已经尝试了一个http-get-request来处理返回的状态码,但最后我对同源策略有一些问题。

我也尝试了ononline和onoffline事件,但这些都是depricated,并不能在我的目标浏览器中工作。

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

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

回答

3

原则上这是Why navigator.onLine is inconsistent? Is there any reliable solutions?

重复不过,我会亲自尝试像

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(); 
} 
+0

中被解雇了,这是件好事。感谢您的信息 –

+0

这对我很好。当没有互联网连接时,需要加载离线页面。但是:我怎么能实现,在成功加载其他页面加载? onload是错误的选项,在每次刷新时都会导致错误 –

+0

如果服务器启动,您希望加载“http://servertotest.com/abc”?你可以使用'img.onload = function(){if(location.host.indexOf(“servertotest”)== - 1)location.replace(“http://servertotest.com/abc”)}'这将重定向从本地主机或文件系统到服务器上的网址 – mplungjan

相关问题