六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 44|回复: 0

ajax异步判断网站是否可以访问到的解决方法

[复制链接]

升级  3.33%

13

主题

13

主题

13

主题

秀才

Rank: 2

积分
55
 楼主| 发表于 2013-1-29 10:46:27 | 显示全部楼层 |阅读模式
function getXMLHttpRequest(){  var client = getXMLHttpRequestFromIE();   if(client == null){        client = new XMLHttpRequest();   }  return client;}function getXMLHttpRequestFromIE(){  var namePrefixes = ["Msxml3","Msxml2","Msxml","Microsoft"];  for(var i = 0; i < namePrefixes.length; i++){       try{           var name = namePrefixes[i] + ".XMLHTTP";           return new ActiveXObject(name);       }catch(e){       }  }  return null;}var client = null;//是否可以访问var isRun = false;//返回值var stateString="";//请求url的网站function connUrl(url){client = getXMLHttpRequest();var actionURL = convertURL(url);try{client.open("GET", actionURL, true);client.onreadystatechange = callBack;client.send(null);}catch(e){}finally{}}function callBack(){if(client.readyState == 4){stateString = client.responseText;if(stateString && client.status==200)isRun = true;}}//是否可达function isReach(url){connUrl(url);return isRun;}//给url地址增加时间戳,骗过浏览器,不读取缓存    function convertURL(url) {            //获取时间戳            var timstamp = (new Date()).valueOf();            //将时间戳信息拼接到url上        if (url.indexOf("?") >= 0) {                    url = url + "&t=" + timstamp;            } else {                    url = url + "?t=" + timstamp;            }            return url;    }//因为是异步,先调用,此时isRun的值是falseisReach("http://www.baidu.com");//3秒钟后判断isRun的值,如果为false认为网站不可达,类似超时时间setTimeout(function(){   //alert(stateString); //alert(isRun);if(isRun==true){document.getElementById("ceshi").innerText = "网站是通的!";}else{document.getElementById("ceshi").innerText = "网站不通!";}},3000); 
<div id="ceshi"></div> 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表