js判断是否有网络

626 阅读1分钟

此方法经验证可行,mark一下。(注:方法不唯一!)

原理为通过请求一张服务器上的图片,若请求成功则判断为有网络,请求失败则判断为无网络。

代码如下,直接复制粘贴。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    var EventUtil = {
        addHandler: function (element, type, handler) {
            if (element.addEventListener) {
                element.addEventListener(type, handler, false);
            } else if (element.attachEvent) {
                element.attachEvent("on" + type, handler);
            } else {
                element["on" + type] = handler;
            }
        },
        removeHandler: function (element, type, handler) {
            if (element.removeEventListener) {
                element.removeEventListener(type, handler, false);
            } else if (element.detachEvent) {
                element.detachEvent("on" + type, handler);
            } else {
                element["on" + type] = null;
            }
        }
    };

    var dom = document.createElement('img');
    dom.style = 'display:none;';
    dom.src = 'http://www.baidu.com/img/bdlogo.gif';
    dom.id = 'map_img';
    EventUtil.addHandler(dom, 'error', function () {

        alert('你的电脑没有链接网络,连接上网络后才能打开地图!');
    });
    document.body.appendChild(dom);
</script>

</html>