Dunque, studiando ajax prima mi sono sviluppato semplici test tramite funzioni separate. Ora sto cercando di racchiudere le funzioni all'interno di un oggetto tramite questo codice:
Il mio intento è creare una classe riutilizzabile in modo da avere nella variabile innerXml l'xml generato dalla pagina lato server per poi poterla rielaborare tramite la funzione internta elaborateFunction.codice:function xmlHttpObject() { var xmlObj; try {xmlObj= new ActiveXObject("Msxml2.XMLHTTP");} catch (e) { try{xmlObj= new ActiveXObject("Microsoft.XMLHTTP");;} catch (oc){xmlObj = null;} } if(!xmlObj && typeof XMLHttpRequest != "undefined") { xmlObj = new XMLHttpRequest(); } this.obj = xmlObj; this.innerXML = null; this.elaborateFunction = null; this.callback = function callback() { if (this.obj.readyState == 4) { if (this.obj.status == 200) { this.innerXML = this.obj.responseXml; eval(this.eleborateFunction); } else { this.error = "Errore nel caricamento dati: "+ this.obj.statusText; } } } this.open = function open(url,method) { this.obj.onreadystatechange = this.callback; if (method.toLowerCase() == "post") { this.obj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); this.obj.open("POST", url, true); } else { this.obj.open("GET", url, true); } this.obj.send(null); } return (this); }
In questo modo lanciando l'oggetto si è liberi di manipolare l'output xml in maniera distaccata tramite proprie funzioni.
il problema (sara' la giornata piovosa) mi sono arenato
nella parte in grassetto: this.obj.onreadystatechange = this.callback
assegno la funzione interna callback al caricamento dell'xml del oggetto Xml Request.
All'entrata della funzione l'oggetto perde il suo valore e firefox mi riporta un laconico this.obj.status has no properties.
Nel frattempo mi ci continuo a rompere la testa ma se qualcuno ha un suggerimento è ben accetto.

Rispondi quotando