js 判断用户是否联网

第一种:

使用思路,online属性是一个只读的布尔值,声明了系统是否处于脱机模式。

function isOnLine() {
    var netStatus = "";
    if (window.navigator.onLine == true) {
        netStatus = "onLine";//网络链接正常
    } else {
        netStatus = "offLine";//网络连接失败
    };
    return netStatus;
};

调用方法 isOnLine()   // onLine  网络在线

调用方法 isOnLine()   // offLine  网络离线

但是,此方法存在问题,向我们使用的内网,虽然插网线,但是连接不了互联网,但是依然返回onLine 所以在内网情况下不适用。

第二种:

使用思路,加载一张网络图片,例如百度图标,加载失败的话提示网络链接异常,但是此方法加载速度过慢,代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>测试网络是否在线</title>
    </head>
    <body>
    <img id="img-test" style="display:none;" onerror="getImgError()"/>
    
    <script>
      window.onload = function() {
        var imgPath = "https://www.baidu.com/img/bd_logo1.png";
        var timeStamp = Date.parse(new Date());
        var imgTest = document.getElementById("img-test");
        imgTest.setAttribute("src", imgPath + "?timestamp=" + timeStamp);
        
        getImgError = function () {
          alert("网络连接异常")
        }
      }
    </script>
    </body>
</html>

图片响应会时间过慢,加载会有一定影响,暂时还未很好的解决。。。

js 判断用户是否联网

上一篇:获取js函数执行时间的装饰器


下一篇:Vue.js高级用法