|
今天就在大家面前卖弄一下,相信很多学习Ajax的朋友都对此方法不陌生。增加Ajax相关的js方法,这些方法大部分是基于prototype (一个很好的 JavaScript Framework )类库来写的。
1. loadAjaxElement,loadAjaxData,sendAjaxElement,sendAjaxData这四方法都是真接Ajax操作的方法;
2. parseXML,importXML,getTextNodeValue这三个方法是对于Ajax返回结果中的xml数据的处理;如果返回结果非标准xml文档的话,可以通过parseXML来处理,生成XMLDocument对象;
3.getParams方法是用来返回当前页面的url参数值的;
4.showLoa**,hideLoa**这两个方法用来显示在页面加载过程中提示信息
代码:
- //Ajax功能;
- function loadAjaxElement(e,u,p,f,l){
- if(arguments.length < 3){
- return ;
- }
- var o = $(e);
- o.innerHTML = l;
- if(typeof p != 'string'){
- p = $H(p).toQueryString();
- }
- new Ajax.Updater( {success: e},u,{method: 'get', parameters: p, onFailure: f});
- }
- function loadAjaxData(u,p,s,f){
- if(arguments.length < 3){
- return ;
- }
- if(typeof p != 'string'){
- p = $H(p).toQueryString();
- }
- new Ajax.Request( u,{method: 'get', parameters: p, onSuccess:s,onFailure: f});
- }
- function sendAjaxElement(e,u,p,f,l){
- if(arguments.length < 3){
- return ;
- }
- var o = $(e);
- o.innerHTML = l;
- if(typeof p != 'string'){
- p = $H(p).toQueryString();
- }
- new Ajax.Updater( {success: e}, u, {method: 'post', parameters: p, onFailure: f});
- }
- function sendAjaxData(u,p,s,f){
- if(arguments.length < 3){
- return ;
- }
- if(typeof p != 'string'){
- p = $H(p).toQueryString();
- }
- new Ajax.Request( u, {method: 'post', parameters: p, onSuccess:s,onFailure: f});
- }
- function parseXML(s){
- try{
- var domParser = new DOMParser();
- var o = domParser.parseFromString(s, 'application/xml');
- return o.documentElement;
- }catch(e){
- try{
- var o = getIEXmlAX();
- o.loadXML(s);
- return o.documentElement;
- }catch(e){
- return null;
- }
- }
- }
- function importXML(u,s,f){
- new Ajax.Request( u, {method: 'get', parameters: null, onSuccess:function(v){s(v.responseXML.documentElement);},onFailure: f});
- }
- function getIEXmlAX(){
- var i,activeXarr;
- activeXarr = new Array(
- "MSXML4.DOMDocument",
- "MSXML3.DOMDocument",
- "MSXML2.DOMDocument",
- "MSXML.DOMDocument",
- "Microsoft.XmlDom"
- ); for(i=0; i<activeXarr.length; i++){
- try {
- var o = new ActiveXObject(activeXarr[i]);
- return o;
- } catch(objException){}
- }
- return false;
- }
- function getTextNodeValue(d,n,e){
- if(typeof e == 'undefined'){
- e = false;
- }
- var a = d.getElementsByTagName(n);
- if(a==null){
- return null;
- }
- if(a.length==1){
- return (e)?unescape(a[0].firstChild.nodeValue):a[0].firstChild.nodeValue;
- }else{
- var ra = new Array();
- for(var i=0;i<a.length;i++){
- ra[i] = (e)?unescape(a[i].firstChild.nodeValue):a[i].firstChild.nodeValue;
- }
- return ra;
- }
- }
- function getParams(){
- var o = new Object()
- var a=document.location.search.substr(1).split('&');
- for (i=0;i<a.length;i++){
- try{
- var aa=a[i].split('=');
- var n=aa[0];
- var v=aa[1];
- o[n]=trim(v);
- }catch(e){
- }
- }
- return o;
- }
- function showLoa**(c,b,a){
- switch(arguments.length){
- case 2:
- a = 0.9;
- case 1:
- b = "#000000";
- case 0:
- c = "#FFFFFF";
- break;
- }
- var d = document;
- if($("loa**_div") == null){
- var s = '<div id="loa**_div" style="position:absolute;left:0px;top:0px;width:100%;height:100%; z-index:auto;text-align: center;font-family: Courier New, Courier, mono;font-size: 12px;color:'+c+';pad**-top: 30%;background-color:'+b+';"><h1>正在加载页面...</h1></div>';
- d.write(s);
- }
- var o = $("loa**_div");
- if(o.style.MozOpacity){
- o.style.MozOpacity = a;
- }else if(o.style.opacity){
- o.style.opacity = a;
- }else{
- a = a * 100;
- o.style.filter='Alpha(Opacity='+a+')';
- }
- }
- function hideLoa**(){
复制代码 |
|