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();
相关文章推荐
- XmlHttpRequest CORS 与 AJAX封装类
- Ajax技术之Ajax重构(封装XMLHttpRequest)
- 【Ajax 2】封装Ajax的核心对象:XMLHttpRequest对象
- XMLHTTPRequest 的封装--Binder
- Ajax应用示例: XMLHttpRequest封装
- RN中也可用的网络库封装,基于xmlhttprequest~
- XMLHTTPRequest 的封装--Sender
- 封装支持FireFox与IE创建XMLHttpRequest方法
- Ajax之工厂模式封装XMLHttpRequest
- Java乔晓松-ajax中xmlhttprequest的属性、方法和ajax封装post方法
- JavaScript 自定义封装XMLHttpRequest
- 对AJAX中XMLHttpRequest的封装
- Ajax中封装创建XMLHttpRequest对象的方法
- js原生创建封装ajax的方法,附XMLHttpRequest状态码
- XMLhttpRequest 封装
- 对XMLHttpRequest异步请求的面向对象封装
- xmlHttpRequest封装类
- 得到XmlHttpRequest对象封装的函数,支持ie和firefox
- XMLHttpRequest的封装
- 一个ajax通用函数(xmlhttprequest封装)