下面是我自己写的,但是总是返回的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;
}

解决方案 »

  1.   

    你拿你们家自己的东西,那也叫偷吗??????!!!!从一般意义上来说,js是不能跨域的.所以js不可能做小偷程序
      

  2.   

    使用这些封闭好的方法,一般不会出现浏览器不兼容和乱码问题。还有不能夸大域
    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');
    }
    }
      

  3.   

    请问下这个应该怎么用呢?本人javascript菜鸟。对于一些join的用法不是很懂。
    主要是if(fCallBack.constructor==Function){fCallBack(xhr);}这个不懂
      

  4.   

    这个就是回调函数其实就是这个意思
    if(typeof fCallBack=="function"){fCallBack(xhr);}