Siccome probabilmente sono stato un pò criptico, ricostruisco il processo:
File html:
Codice PHP:
[url="templatesXml/artists.xml"]Artists[/url]
richiamo il metodo "__callSection()":
Codice PHP:
__callSection:function (docElement, fileXml, fileXsl) {
fileXsl = 'http://www.****.com/xml/xmlTemp/templatesXml/' + fileXsl;
if (!document.getElementById || !document.createTextNode) { return; }
ajaxObject.__sendRequest(fileXml, fileHandler.__xmlHandler, fileXsl, fileHandler.__xslHandler);
if (window.ActiveXObject){
document.getElementById(docElement).innerHTML = xmlContent.transformNode(xslContent);
} else {
var xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xslContent);
var fragment = xsltProcessor.transformToFragment(xmlContent, document);
outputDiv = document.getElementById(docElement);
outputDiv.appendChild(fragment);
}
}
Quando invio la richiesta "__sendRequest()" carico i due file Xml e Xsl in modo asincrono. I due gestori dell'evento valorizzano le variabili xmlContent e xslContent:
Codice PHP:
__xmlHandler:function () {
//se carica completamente ed è andato tutto a buon fine
if (oHttpReqXml.readyState == 4 && oHttpReqXml.status == 200) {
xmlContent = oHttpReqXml.responseXML;
} else if (oHttpReqXml.readyState == 1 || oHttpReqXml.readyState == 2 || oHttpReqXml.readyState == 3) {
document.getElementById('load').innerHTML = 'Caricando XML';
} else {
ajaxObject.__requestFailed(oHttpReqXml);
}
},
__xslHandler:function () {
//se carica completamente ed è andato tutto a buon fine
if (oHttpReqXsl.readyState == 4 && oHttpReqXsl.status == 200) {
xslContent = oHttpReqXsl.responseXML;
} else if (oHttpReqXsl.readyState == 1 || oHttpReqXsl.readyState == 2 || oHttpReqXsl.readyState == 3) {
document.getElementById('load').innerHTML = 'Caricando XSL';
} else {
ajaxObject.__requestFailed(oHttpReqXsl);
}
}
Da qui devo passare i due contenuti in una funzione che mi combina Xml e Xsl... questa era la funzione __doTrasform() del post precedente..
Quello che volevo sapere io è: Come faccio a passare xmlContent e xslContent alla stessa funzione essendo che derivano da due gestori diversi???
ps. Ho già provato a fare una chiamata al metodo __doTrasform() da tutti e due i gestori ma mi ritorna che uno dei due argomenti non sono valorizzati come è ovvio che sia.. credo
:master:
Codice PHP:
__xslHandler:function () {
//se carica completamente ed è andato tutto a buon fine
if (oHttpReqXsl.readyState == 4 && oHttpReqXsl.status == 200) {
xslContent = oHttpReqXsl.responseXML;
fileHandler.__doTrasform(docElement, xmlContent, xslContent); //qui xmlcontent non sarà valorizzato
} else if (oHttpReqXsl.readyState == 1 || oHttpReqXsl.readyState == 2 || oHttpReqXsl.readyState == 3) {
document.getElementById('load').innerHTML = 'Caricando XSL';
} else {
ajaxObject.__requestFailed(oHttpReqXsl);
}
Se qualcuno ha idee..