MJ> Ajax uses XmlHttpRequest (in most cases), so it looks like your editor
MJ> /is/ ajax based.  :)

I started this project in 2002 and I'm not sure AJAX already came
up at that time.
I just use same core components as AJAX does:

if (is.ie) {
  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
}
else {
  xmlHttp = new XMLHttpRequest();
}

....

function sendActionRequest(urlParams, baseApp){
  if(!baseApp)baseApp=runApp;
  if (urlParams=='') return;
  var rndm = Math.random()*999999999;
  var link=baseApp+"?"+urlParams+"&ds="+datasource+'&random='+rndm;
  xmlHttp.open("GET", link, false);
  xmlHttp.setRequestHeader('Content-Type',
    'application/x-www-form-urlencoded; charset=utf-8');
  xmlHttp.send(null);
}

function getXmlFromResponse(){
  var xmlBody=truncatePrefix(xmlHttp.responseText);
  if(is.ie){
    var tmpXML = new ActiveXObject("Msxml2.DOMDocument.3.0");
    tmpXML.loadXML(xmlBody);
    if(tmpXML.xml=='')
      alert('Invalid xml from the server:\n'+xmlBody);
  }
  else{
    var tmpXML = document.implementation.createDocument('','',null);
    var parser = new DOMParser();
    tmpXML = parser.parseFromString(xmlBody, "text/xml");
    if(!tmpXML.documentElement)
      alert('Invalid xml from the server:\n'+xmlBody);
  }
  return tmpXML;
}

That's all.

I also use my own JS code for XPath queries, not Sarissa:

function selNodes(doc, xpath){
  if(is.ie){
    return doc.selectNodes(xpath);
  }
  else{
    var nodeRoot=doc;
    if(doc.ownerDocument) nodeRoot=doc.ownerDocument;
    var result = nodeRoot.evaluate(xpath, doc,
      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
    var found = new Array();
    var res;
    for (var i = 0; i < result.snapshotLength; i++) {
      found.push(result.snapshotItem(i));
    }
    return found;
  }
}

function selSingleNode(doc, xpath){
  if(is.ie){
    return doc.selectSingleNode(xpath);
  }
  else{
    var nodeRoot=doc;
    if(doc.ownerDocument) nodeRoot=doc.ownerDocument;
    var result = nodeRoot.evaluate(xpath, doc,
      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
    if(result.snapshotLength==2){
      var xmlSerializer = new XMLSerializer();
      var markup = xmlSerializer.serializeToString(doc);
    }
    if(result.snapshotLength>0) return result.snapshotItem(0)
    else return null;
  }
}



--
Sergey Croitor


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Message: http://www.houseoffusion.com/lists.cfm/link=i:4:236353
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Donations & Support: http://www.houseoffusion.com/tiny.cfm/54

Reply via email to