下面是我自己写的,但是总是返回的str总是null,我在里面是了下可以打印出来。
求教一下各位大侠是怎么回事啊,我要怎么做才能返回,或者我这个思路根本就不对,还有这个也有中文乱码的问题。
希望哪位大侠能给我解释下。
var XMLHttp,str;
function thief(method,url,asyn) {
XMLHttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
XMLHttp.open("get",url,asyn)
XMLHttp.onreadystatechange = function(){
if(XMLHttp.readyState == 4 && XMLHttp.status == 200) {
str = XMLHttp.responseText;
patrn = "^[<div][\s\S]*?[</div>]$";
reg = new RegExp(patrn,"g");
str = str.match(reg);
//document.write(str);
}
}
XMLHttp.send(null);
return str;
}
求教一下各位大侠是怎么回事啊,我要怎么做才能返回,或者我这个思路根本就不对,还有这个也有中文乱码的问题。
希望哪位大侠能给我解释下。
var XMLHttp,str;
function thief(method,url,asyn) {
XMLHttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
XMLHttp.open("get",url,asyn)
XMLHttp.onreadystatechange = function(){
if(XMLHttp.readyState == 4 && XMLHttp.status == 200) {
str = XMLHttp.responseText;
patrn = "^[<div][\s\S]*?[</div>]$";
reg = new RegExp(patrn,"g");
str = str.match(reg);
//document.write(str);
}
}
XMLHttp.send(null);
return str;
}
var ajax = {//xmlhttp request
tryList:function(){
var xhr = null;
for(var i=0;i<arguments.length;i++){
var lambda = arguments[i];
try{xhr = lambda();break;}catch(e){}
}
return xhr;
},
init:function(){
return this.tryList(
function(){return new ActiveXObject('MSXML2.XMLHttp.6.0');},
function(){return new ActiveXObject('MSXML2.XMLHttp.3.0');},
function(){return new XMLHttpRequest();},
function(){return new ActiveXObject('MSXML2.XMLHttp.5.0');},
function(){return new ActiveXObject('MSXML2.XMLHttp.4.0');},
function(){return new ActiveXObject('Msxml2.XMLHTTP');},
function(){return new ActiveXObject('MSXML.XMLHttp');},
function(){return new ActiveXObject('Microsoft.XMLHTTP');}
) || null;
},
post:function(sUrl,sArgs,bAsync,fCallBack,errmsg){
var xhr = this.init();
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.responseText){
if(fCallBack.constructor==Function){fCallBack(xhr);}
}else{
alert(errmsg);
}
}
};
xhr.open('POST',encodeURI(sUrl),bAsync);
xhr.setRequestHeader('Content-Length',sArgs.length);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send(sArgs);
},
get:function(sUrl,bAsync,fCallBack,errmsg){
var xhr = this.init();
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.responseText){
if(fCallBack.constructor==Function){fCallBack(xhr);}
}else{
alert(errmsg);
}
}
};
xhr.open('GET',encodeURI(sUrl),bAsync);
xhr.send('Null');
}
}
主要是if(fCallBack.constructor==Function){fCallBack(xhr);}这个不懂
if(typeof fCallBack=="function"){fCallBack(xhr);}