gpt4 book ai didi

javascript - navigator.onLine 并不总是有效

转载 作者:行者123 更新时间:2023-12-03 00:44:46 25 4
gpt4 key购买 nike

我的 navigator.onLine 属性有问题。

我正在从 WAMP 上运行的本地信息亭运行一个简单的网站。

在我的笔记本电脑上测试它时它可以工作。我关闭 WiFi,然后出现警告框。在运行 WAMP 软件的信息亭上断开互联网连接不会产生错误状态。有什么想法吗?

var online = navigator.onLine;

if (online == false) {

alert("Sorry, we currently do not have Internet access.");
location.reload();

}

最佳答案

MDN 关于 navigator.onLine :

In Chrome and Safari, if the browser is not able to connect to a local area network (LAN) or a router, it is offline; all other conditions return true. So while you can assume that the browser is offline when it returns a false value, you cannot assume that a true value necessarily means that the browser can access the internet.

如上所述,此属性不可信,因此,在我看来,最好的解决方法是对服务器端页面进行 ajax 调用。如果浏览器处于离线状态,则连接将失败,因此将调用 onerror 事件。否则,将调用 onload 事件:

function isOnline(no,yes){
var xhr = XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHttp');
xhr.onload = function(){
if(yes instanceof Function){
yes();
}
}
xhr.onerror = function(){
if(no instanceof Function){
no();
}
}
xhr.open("GET","anypage.php",true);
xhr.send();
}

isOnline(
function(){
alert("Sorry, we currently do not have Internet access.");
},
function(){
alert("Succesfully connected!");
}
);

关于javascript - navigator.onLine 并不总是有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14283124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com