[SOLVED] JavaScript->Ajax + "OOP"

A Javascript nemtom hoba tartozik sztem ide...
Kerdesm lenne...


function AjaxMessager() {
    this.IE = document.all ? true : false;
    this.actionFunction = "";
    this.mainObject;

    if (window.XMLHttpRequest) {
        this.mainObject = new XMLHttpRequest();
    } else {
        this.mainObject = new ActiveXObject("MSXML2.XMLHTTP.3.0");
    }

    this.getResults = function(url, parameters, method, actionFunction) {
        this.actionFunction = actionFunction
        this.mainObject.open(method, url, true);
        this.mainObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        this.mainObject.setRequestHeader("Content-length", parameters.length);
        this.mainObject.setRequestHeader("Connection", "close");

        this.mainObject.onreadystatechange = this.useHttpResponse;
        this.mainObject.send(parameters);

        return false;
    }

    this.useHttpResponse = function() {
        if(this.mainObject.readyState == 4)
        {
            if(this.mainObject.status == 200)
            {
                eval(this.actionFunction + "(this.mainObject.responseXML);");
            }
            else
            {
                alert('Ajax Hiba!');
            }
        }
    }
}

Szal itt egy objektum... ezt meghivom szepen mukodik...


        Messager = new AjaxMessager();
        Messager.parseResult = function (data) {
            alert(data);
        }
        Messager.getResults('SearchEngine.php', '','GET', 'this.parseResult');

Viszont... amikor atadna a this.useHttpResponse -nak a vezerlest, akkor o azt mondja, hogy a this.mainObject az undefined... Miert lehet ez? Hogy tudom athidalni? Barmi tampont?

Nemtom mit hagytam ki, szal ha neme rtheto kerdezzetek batran =)

Hozzászólások

A useHttpResponse fuggvenyt beraktad a onreadystatechange-be, ezert callback hivaskor a useHttpResponse-on belül a "this" maga az XMLHTTP objektum lesz. Semmiképpen sem az AjaxMessager.