您的位置:首页 > 理论基础 > 计算机网络

XMLHTTPRequest 的封装--Render

2006-12-14 19:49 337 查看

Function.registerNamespace("net.bingosoft.web");




net.bingosoft.web.Render = function()...{


net.bingosoft.web.Render.initializeBase(this);




var _xmlUrl = null;


var _xslUrl = null;


var _callbackMethod = null;


var _xmlMethod = null;


var _httpBody = null;


var _args = null;


var _xmlDom = null;


var _xslDom = null;


var _validateXMLDOM = null;


var _args = null;




var _self = this;






this.getXmlDom = function()...{


return _xmlDom;


}






this.getXslDom = function()...{


return _xslDom;


}






this.transform = function(xmlUrl, xslUrl, callbackName, xmlMethod, httpBody, args)...{


_xmlUrl = xmlUrl;


_xslUrl = xslUrl;


_callbackMethod = callbackName;


_xmlMethod = xmlMethod || "POST"


_httpBody = httpBody;


_args = args || null;




if(typeof(_xmlUrl.xml) != "undefined")


_xmlDom = _xmlUrl;




else ...{


var xmlhttpXML = new net.bingosoft.web.Sender();


xmlhttpXML.send(_xmlUrl,_xmlMethod,_self._xmlCallback,_httpBody);


xmlhttpXML = null;


}






if(typeof(_xslUrl.xml) != "undefined") ...{


_xslDom = _xslUrl;




} else ...{


var xmlhttpXSL = new net.bingosoft.web.Sender();


xmlhttpXSL.send(_xslUrl, "GET", _self._xslCallback);


xmlhttpXSL = null;


}






if(typeof(_xmlUrl.xml) != "undefined" && typeof(_xslUrl.xml) != "undefined") ...{


_self._onDataReady();


}


}






this._xmlCallback = function(xmlDom) ...{


_xmlDom = xmlDom;


_self._onDataReady();


}






this._xslCallback = function(xslDom) ...{


_xslDom = xslDom;


_self._onDataReady();


}






this._onDataReady = function() ...{


if(_xmlDom == null || _xslDom == null)


return;






if(_validateXMLDOM!=null) ...{




if(!_validateXMLDOM(_xmlDom)) ...{


if(loadingHide)loadingHide();


return;


}


}


var html = _self._transformNode();


_callbackMethod(html);


}






this._transformNode = function() ...{


var result = null;




try ...{




if(window.ActiveXObject) ...{




if(_args == null) ...{


result = _xmlDom.transformNode(_xslDom);




} else ...{


var xslDoc=new ActiveXObject("MSXML2.FreeThreadedDOMDocument");


_xslDom.save(xslDoc);


_xslDom = null;


var xslTemplate=new ActiveXObject("MSXML2.XSLTemplate");


xslTemplate.stylesheet=xslDoc;


var xslProcessor=xslTemplate.createProcessor();




if(_args!=null) ...{




for(var name in _args) ...{


xslProcessor.addParameter(name,_args[name]);


}


}


xslProcessor.input=_xmlDom;


xslProcessor.transform();


result = xslProcessor.output;




xslDoc = null;


xslTemplate = null;


xslProcessor = null;


}




} else if(window.XMLHttpRequest) ...{


var xslProcessor = new XSLTProcessor();


xslProcessor.importStylesheet(_xslDom);




if(_args!=null) ...{




for(var name in _args) ...{


xslProcessor.setParameter(null,name,_args[name]);


}


}


result = xslProcessor.transformToFragment(_xmlDom,document);


xslProcessor = null;




} else ...{


throw new Error("Could not transform xml on this browser");


}




} catch(e) ...{


throw e;




} finally ...{


_args = null;


}


return result;


}


}


net.bingosoft.web.Render.registerClass("net.bingosoft.web.Render", null, null);


var $render = new net.bingosoft.web.Render();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: