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