您现在的位置是:首页 >

ajax12 给大家讲个不错的ajax组件

火烧 2021-08-30 00:01:35 1048
给大家讲个不错的ajax组件   fu ctio Xajax { if xajaxDe ug thi De ugMe age = fu ctio text { alert Xajax De ug: +
ajax12 给大家讲个不错的ajax组件

给大家讲个不错的ajax组件  

  function Xajax()    {    if (xajaxDebug) this DebugMessage = function(text) { alert( Xajax Debug:n + text) };

  this workId = xajaxWork + new Date() getTime();    this depth = ;

  //Get the XMLHttpRequest Object    this getRequestObject = function()    {    if (xajaxDebug) this DebugMessage( Initializing Request Object );    var req;    try    {    req=new ActiveXObject( Msxml XMLHTTP );    }    catch (e)    {    try    {    req=new ActiveXObject( Microsoft XMLHTTP );    }    catch (e )    {    req=null;    }    }    if(!req && typeof XMLHttpRequest != undefined )    req = new XMLHttpRequest();

  if (xajaxDebug) {    if (!req) this DebugMessage( Request Object Instantiation failed );    }

  return req;    }

  // xajax $() is shorthand for document getElementById()    this $ = function(sId)//$是什么?    {    return document getElementById(sId);    }

  // xajax include(sFileName) dynamically includes an external javascript file    this include = function(sFileName)    {    var objHead = document getElementsByTagName( head );    var objScript = document createElement( script );    objScript type = text/javascript ;    objScript src = sFileName;    objHead[ ] appendChild(objScript);    }

  // xajax addHandler adds an event handler to an element    this addHandler = function(sElementId sEvent sFunctionName)    {    if (window addEventListener)    {    //eval的含义?    eval( this $( +sElementId+ ) addEventListener( +sEvent+ +sFunctionName+ false); );    }    else    {    eval( this $( +sElementId+ ) attachEvent( on +sEvent+ +sFunctionName+ fal**); );    }    }

  // *ajax removeHandler removes an event handler from an element    this removeHandler = function(sElementId sEvent sFunctionName)    {    if (window addEventListener)    {    eval( this $( +sElementId+ ) removeEventListener( +sEvent+ +sFunctionName+ false); );    }    else    {    eval( this $( +sElementId+ ) detachEvent( on +sEvent+ +sFunctionName+ fal**); );    }    }

  // *ajax create creates a new child node under a parent    this create = function(sParentId sTag sId)    {    var objParent = this $(sParentId);    objElement = document createElement(sTag);    objElement setAttribute( id sId);    objParent appendChild(objElement);    }

  // xajax insert inserts a new node before another node    this insert = function(sBeforeId sTag sId)    {    var objSibling = this $(sBeforeId);    objElement = document createElement(sTag);    objElement setAttribute( id sId);    objSibling parentNode insertBefore(objElement objSibling);    }

  this getInput = function(sType sName sId)    {    var Obj;    if (sType == radio && !window addEventListener)    {    alert( here );    Obj = document createElement( <input type= radio id= +sId+ name= +sName+ > );    }    else    {    Obj = document createElement( input );    Obj setAttribute( type sType);    Obj setAttribute( name sName);    Obj setAttribute( id sId);    }    return Obj;    }

  // xajax createInput creates a new input node under a parent    this createInput = function(sParentId sType sName sId)    {    var objParent = this $(sParentId);    var objElement = this getInput(sType sName sId);    objParent appendChild(objElement);    }

  // xajax insertInput creates a new input node before another node    this insertInput = function(sBeforeId sType sName sId)    {    var objSibling = this $(sBeforeId);    var objElement = this getInput(sType sName sId);    objSibling parentNode insertBefore(objElement objSibling);    }

  // xajax remove deletes an element    this remove = function(sId)    {    objElement = this $(sId);    if (objElement parentNode && objElement parentNode removeChild)    {    objElement parentNode removeChild(objElement);    }    }

  //xajax replace searches for text in an attribute of an element and replaces it    //with a different text    this replace = function(sId sAttribute sSearch sReplace)    {    var bFunction = false;

  eval( var txt=document getElementById( +sId+ ) +sAttribute);    if (typeof txt == function )            {                txt = txt toString();                bFunction = true;            }    if (txt indexOf(sSearch)> )    {    var newTxt = ;    while (txt indexOf(sSearch) > )    {    x = txt indexOf(sSearch)+sSearch length+ ;    newTxt += txt substr( x) replace(sSearch sReplace);    txt = txt substr(x txt length x);    }    newTxt += txt;    if (bFunction)    {    eval( newTxt = + newTxt);    eval( this $( +sId+ ) +sAttribute+ =newTxt; );    }    else if (this willChange(sId sAttribute newTxt))    {    eval( this $( +sId+ ) +sAttribute+ =newTxt; );    }    }    }

    // xajax getFormValues() builds a query string XML message from the elements of a form object

  function Xajax()    {    if (xajaxDebug) this DebugMessage = function(text) { alert( Xajax Debug:n + text) };

  this workId = xajaxWork + new Date() getTime();    this depth = ;

  //Get the XMLHttpRequest Object    this getRequestObject = function()    {    if (xajaxDebug) this DebugMessage( Initializing Request Object );    var req;    try    {    req=new ActiveXObject( Msxml XMLHTTP );    }    catch (e)    {    try    {    req=new ActiveXObject( Microsoft XMLHTTP );    }    catch (e )    {    req=null;    }    }    if(!req && typeof XMLHttpRequest != undefined )    req = new XMLHttpRequest();

  if (xajaxDebug) {    if (!req) this DebugMessage( Request Object Instantiation failed );    }

  return req;    }

  // xajax $() is shorthand for document getElementById()    this $ = function(sId)//$是什么?    {    return document getElementById(sId);    }

  // xajax include(sFileName) dynamically includes an external javascript file    this include = function(sFileName)    {    var objHead = document getElementsByTagName( head );    var objScript = document createElement( script );    objScript type = text/javascript ;    objScript src = sFileName;    objHead[ ] appendChild(objScript);    }

  // xajax addHandler adds an event handler to an element    this addHandler = function(sElementId sEvent sFunctionName)    {    if (window addEventListener)    {    //eval的含义?    eval( this $( +sElementId+ ) addEventListener( +sEvent+ +sFunctionName+ false); );    }    else    {    eval( this $( +sElementId+ ) attachEvent( on +sEvent+ +sFunctionName+ fal**); );    }    }

  // *ajax removeHandler removes an event handler from an element    this removeHandler = function(sElementId sEvent sFunctionName)    {    if (window addEventListener)    {    eval( this $( +sElementId+ ) removeEventListener( +sEvent+ +sFunctionName+ false); );    }    else    {    eval( this $( +sElementId+ ) detachEvent( on +sEvent+ +sFunctionName+ fal**); );    }    }

  // *ajax create creates a new child node under a parent    this create = function(sParentId sTag sId)    {    var objParent = this $(sParentId);    objElement = document createElement(sTag);    objElement setAttribute( id sId);    objParent appendChild(objElement);    }

  // xajax insert inserts a new node before another node    this insert = function(sBeforeId sTag sId)    {    var objSibling = this $(sBeforeId);    objElement = document createElement(sTag);    objElement setAttribute( id sId);    objSibling parentNode insertBefore(objElement objSibling);    }

  this getInput = function(sType sName sId)    {    var Obj;    if (sType == radio && !window addEventListener)    {    alert( here );    Obj = document createElement( <input type= radio id= +sId+ name= +sName+ > );    }    else    {    Obj = document createElement( input );    Obj setAttribute( type sType);    Obj setAttribute( name sName);    Obj setAttribute( id sId);    }    return Obj;    }

  // xajax createInput creates a new input node under a parent    this createInput = function(sParentId sType sName sId)    {    var objParent = this $(sParentId);    var objElement = this getInput(sType sName sId);    objParent appendChild(objElement);    }

  // xajax insertInput creates a new input node before another node    this insertInput = function(sBeforeId sType sName sId)    {    var objSibling = this $(sBeforeId);    var objElement = this getInput(sType sName sId);    objSibling parentNode insertBefore(objElement objSibling);    }

  // xajax remove deletes an element    this remove = function(sId)    {    objElement = this $(sId);    if (objElement parentNode && objElement parentNode removeChild)    {    objElement parentNode removeChild(objElement);    }    }

  //xajax replace searches for text in an attribute of an element and replaces it    //with a different text    this replace = function(sId sAttribute sSearch sReplace)    {    var bFunction = false;

  eval( var txt=document getElementById( +sId+ ) +sAttribute);    if (typeof txt == function )            {                txt = txt toString();                bFunction = true;            }    if (txt indexOf(sSearch)> )    {    var newTxt = ;    while (txt indexOf(sSearch) > )    {    x = txt indexOf(sSearch)+sSearch length+ ;    newTxt += txt substr( x) replace(sSearch sReplace);    txt = txt substr(x txt length x);    }    newTxt += txt;    if (bFunction)    {    eval( newTxt = + newTxt);    eval( this $( +sId+ ) +sAttribute+ =newTxt; );    }    else if (this willChange(sId sAttribute newTxt))    {    eval( this $( +sId+ ) +sAttribute+ =newTxt; );    }    }    }

  // xajax getFormValues() builds a query string XML message from the elements of a form object

  this call = function(sFunction aArgs sRequestType)    {    var i r postData;    if (document body && xajaxWaitCursor)    document body style cursor = wait ;    if (xajaxStatusMessages == true) window status = Sending Request ;    if (xajaxDebug) this DebugMessage( Starting xajax );    if (sRequestType == null) {       var xajaxRequestType = xajaxDefinedPost;    }    else {    var xajaxRequestType = sRequestType;    }    var uri = xajaxRequestUri;    var value;    switch(xajaxRequestType)    {    ca** *ajaxDefinedGet:{    var uriGet = uri indexOf( ? )== ? ?xajax= +encodeURIComponent(sFunction): &xajax= +encodeURIComponent(sFunction);    for (i = ; i<aArgs length; i++)    {    value = aArgs[i];    if (typeof(value)== object )    value = this objectToXML(value);    uriGet += &xajaxargs[]= +encodeURIComponent(value);    }    uriGet += &xajaxr= + new Date() getTime();    uri += uriGet;    postData = null;    } break;    ca** *ajaxDefinedPost:{    postData = xajax= +encodeURIComponent(sFunction);    postData += &xajaxr= +new Date() getTime();    for (i = ; i <aArgs length; i++)    {    value = aArgs[i];    if (typeof(value)== object )    value = this objectToXML(value);    postData = postData+ &xajaxargs[]= +encodeURIComponent(value);    }    } break;    default:    alert( Illegal request type: + xajaxRequestType); return false; break;    }    r = this getRequestObject();    r open(xajaxRequestType==xajaxDefinedGet? GET : POST uri true);    if (xajaxRequestType == xajaxDefinedPost)    {    try    {    r setRequestHeader( Method POST + uri + HTTP/ );    r setRequestHeader( Content Type application/x form urlencoded; charset= + xajaxCharEncoding);    }    catch(e)    {    alert( Your browser does not appear to  support asynchronous requests using POST );    return false;    }    }    r onreadystatechange = function()    {    if (r readyState != )    return;

  if (r status== )    {    if (xajaxDebug && r responseText length < ) xajax DebugMessage( Received:n + r responseText);    else if (xajaxDebug) xajax DebugMessage( Received:n + r responseText substr( )+ n[long response]n </xajax> );    if (r respon***ML)    xajax processResponse(r respon***ML);    else {    alert( Error: the XML response that was returned from the server is invalid );    document body style cursor = default ;    if (xajaxStatusMessages == true) window status = Invalid XML response error ;    }    }

  delete r;    }    if (xajaxDebug) this DebugMessage( Calling +sFunction + uri= +uri+ (post: + postData + ) );    r send(postData);    if (xajaxStatusMessages == true) window status = Waiting for data ;    delete r;    return true;    }

  // Tests if the new Data is the same as the extant data    this willChange = function(element attribute newData)    {    if (!document body)    {    return true;    }    var oldData;    if (attribute == innerHTML )    {    tmpXajax = this $(this workId);    if (tmpXajax == null)    {    tmpXajax = document createElement( div );    tmpXajax setAttribute( id this workId);    tmpXajax style display = none ;    tmpXajax style visibility = hidden ;    document body appendChild(tmpXajax);    }    tmpXajax innerHTML = newData;    newData = tmpXajax innerHTML;    tmpXajax innerHTML = ;    }    eval( oldData=document getElementById( +element+ ) +attribute);    if (newData != oldData)    return true;

  return false;    }

  //Process XML xajaxResponses returned from the request    this processResponse = function(xml)    {    if (xajaxStatusMessages == true) window status = Processing ;    var tmpXajax = null;    xml = xml documentElement;    if (xml == null) {    alert( Error: the XML response that was returned from the server cannot be processed );    document body style cursor = default ;    if (xajaxStatusMessages == true) window status = XML response processing error ;    return;    }    for (i= ; i<xml childNodes length; i++)    {    if (xml childNodes[i] nodeName == cmd )    {    var cmd;    var id;    var property;    var data;    var search;    var type;    var before;

  for (j= ; j<xml childNodes[i] attributes length; j++)    {    if (xml childNodes[i] attributes[j] name == n )    {    cmd = xml childNodes[i] attributes[j] value;    }    if (xml childNodes[i] attributes[j] name == t )    {    id = xml childNodes[i] attributes[j] value;    }    if (xml childNodes[i] attributes[j] name == p )    {    property = xml childNodes[i] attributes[j] value;    }    if (xml childNodes[i] attributes[j] name == c )    {    type = xml childNodes[i] attributes[j] value;    }    }    if (xml childNodes[i] childNodes length > )    {    for (j= ; j<xml childNodes[i] childNodes length; j++)    {    if (xml childNodes[i] childNodes[j] nodeName == s )    {    if (xml childNodes[i] childNodes[j] firstChild)    search = xml childNodes[i] childNodes[j] firstChild nodeValue;    }    if (xml childNodes[i] childNodes[j] nodeName == r )    {    if (xml childNodes[i] childNodes[j] firstChild)    data = xml childNodes[i] childNodes[j] firstChild data;    }    }    }    else if (xml childNodes[i] firstChild)    data = xml childNodes[i] firstChild nodeValue;    else    data = ;

  var objElement = this $(id);    try    {    if (cmd== al )    {    alert(data);    }    if (cmd== js )    {    eval(data);    }    if (cmd== in )    {    this include(data);    }    if (cmd== as )    {    if (this willChange(id property data))    {    eval( objElement +property+ =data; );    }    }    if (cmd== ap )    {    eval( objElement +property+ +=data; );    }    if (cm*== ** )    {    eval( objElement +property+ =data+objElement +property);    }    if (cmd== rp )    {    this replace(id property search data)    }    if (cmd== rm )    {    this remove(id);    }    if (cmd== ce )    {    this create(id data property);    }    if (cmd== ie )    {    this insert(id data property);    }    if (cmd== ci )    {    this createInput(id type data property);    }    if (cmd== ii )    {    this insertInput(id type data property);    }    if (cmd== ev )    {    eval( this $( +id+ ) +property+ = function(){ +data+ ;} );    }    if (cmd== ah )    {    this addHandler(id property data);    }    if (cmd== rh )    {    this removeHandler(id property data);    }    }    catch(e)    {    alert(e);    }    delete objElement;    delete cmd;    delete id;    delete property;    delete search;    delete data;    delete type;    delete before;    }    }    delete xml;    document body style cursor = default ;    if (xajaxStatusMessages == true) window status = Done ;    }    }

lishixinzhi/Article/program/Java/hx/201311/25917  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码