jcyanfan 发表于 2013-1-23 01:27:02

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

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 + ".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> 
页: [1]
查看完整版本: ajax异步判断网站是否可以访问到的解决方法