js检测用户是否联网代码

最简单粗暴的方式就是加载网络资源,JS文件或者图片文件。

 代码如下 复制代码

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
typeof window.jQuery === "undefined" // return false or ture

用jQuery变量来检测是否联网

 代码如下 复制代码

function doConnectFunction() {
    return true;
}
function doNotConnectFunction() {
    return false;
}
var i = new Image();
i.onload = doConnectFunction;
i.onerror = doNotConnectFunction;
i.src = 'yun_qi_img/s7.png?d=' + escape(Date());

加载网络资源的问题就是检测的互联网,如果是局域网检测是无能为力了。

这时候需要一个更好的解决方案,就要用到navigator.onLine,这个属性比较坑的就是浏览器兼容,chrome、Safari 都完美支持,IE7以上是支持的。火狐和IE6比较坑,只有在浏览器“脱机状态”下才返回false,其他都返回true。掐了网线都是true,Opera直接不支持了。

所以还得加一个兼容方法:给location.hostname地址发一个http头请求,代码如下:

 代码如下 复制代码

var xhr = new ( window.ActiveXObject || XMLHttpRequest )( "Microsoft.XMLHTTP" );
var status;
xhr.open( "HEAD", "//" + window.location.hostname + "/?rand=" + Math.floor((1 + Math.random()) * 0x10000), false );
  try {
    xhr.send();
    return ( xhr.status >= 200 && xhr.status < 300 || xhr.status === 304 );
  } catch (error) {
    return false;
  }

里面一个要注意的就是open方法的第三个参数要传false,必须是同步请求。

 代码如下 复制代码

if (navigator.onLine)
{ //正常工作}
else { //执行离线状态时的任务}

或者

 代码如下 复制代码

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;
}
}
};
EventUtil.addHandler(window, "online", function () {
alert("Online");
});
EventUtil.addHandler(window, "offline", function () {
alert("Offline");
});

总结:支持navigator.onLine的浏览器就用navigator.onLine,不支持的就发一个http头请求。

时间: 2024-09-30 21:55:02

js检测用户是否联网代码的相关文章

html5离线存储中用js检测用户是否联网

在hmtl5移动应用中,离线浏览技术越来越流行.但是,新技术的出现有时会给我们WEB开发人员带领额外的苦恼,比如,如何判断用户现在是在线还是离线?幸好,有矛就有盾,JavaScript里的navigator对象帮我们解决这个问题. navigator.onLine navigator.onLine属性能给我们提供一个布尔值,用来判断用户是否连接了互联网.你可以这样访问它: if(navigator.onLine) { // true|false    // ...} 没有比这更简单的了! 事件

js 检测上传图片类型大小代码

js 检测上传图片类型大小代码 var img=null; function showtype() { if(document.up.title.value=="")  {alert("请输入照片说明!");  document.up.title.focus();  return false;  } var fsize=0; if(img)img.removenode(true); img=document.createelement("img"

js检测用户输入密码强度_javascript技巧

一个用Javascript检测用户输入密码强度的效果代码,以下代码主要是从以下四个方面检测用户输入的密码的强度的,有兴趣的朋友可以自己添加或修改成自己想要的形式! 1. 如果输入的密码位数少于5位,那么就判定为弱. 2. 如果输入的密码只由数字.小写字母.大写字母或其它特殊符号当中的一种组成,则判定为弱. 3. 如果密码由数字.小写字母.大写字母或其它特殊符号当中的两种组成,则判定为中. 4. 如果密码由数字.小写字母.大写字母或其它特殊符号当中的三种以上组成,则判定为强. 先来看看这个实现的效

js检测用户浏览器支持flash版本号实现代码

 代码如下 复制代码 (function(){ ver has=0, ver=0; try{ has=new ActiveXObject('ShockwaveFlash.ShockwaveFlash'); if(has) { ver = +(has.GetVariable("$version").match(/d+/)); } } catch(e){ has=navigator.plugins["Shockwave Flash"]; if(has) { ver =

js检测用户与年龄有效验证代码

此JavaScript检查是否姓名和年龄的形式包含有效的字符 <SCRIPT LANGUAGE="JavaScript"> <!-- Begin function validate(){ var digits="0123456789" var temp if (document.testform.Name.value=="") { alert("No Name !") return false } if (d

使用js检测浏览器的实现代码_基础知识

在写跨浏览器的js程序中,检测浏览器是一个很重要的工作.我们不时要为不同的浏览器写分支代码.如下是一种: 复制代码 代码如下: //添加事件工具函数function addEvent(el,type,handle){    if(el.addEventListener){//for standard browses        el.addEventListener(type,handle,false);    }else if(el.attachEvent){//for IE       

js检测用户浏览器类型

提示:您可以先修改部分代码再运行 浏览器名称: 版本号: 代码名称: 用户代理标识: 提示:您可以先修改部分代码再运行

js客户端用户登录记录代码

提示:您可以先修改部分代码再运行 请您输入 用户名: 密  码: 你可以使用如下号码: 用户名:John密    码:4$3gb%a 用户名:Mary密    码:hHhHhH 用户名:Humphrey密    码:humphrey 提示:您可以先修改部分代码再运行

js判断用户浏览器类型代码

<script type="text/javascript"> var userAgent = navigator.userAgent.toLowerCase(); var is_opera = userAgent.indexOf('opera') != -1 && opera.version(); var is_moz = (navigator.product == 'Gecko') && userAgent.substr(userAgen