Quote:
Originally Posted by jkd
Code:
var x=4;
getReqObjPost("someurl.asp","param1=1¶m2=2",function() { callBack(xml,x) });
Works fine. The anonymous function creates a closure over all the variables available in the current scope (e.g. x), which then is referenced as an argument to callBack.
|
Okay, I'm trying, but I guess I don't see how to execute the function when it is passed in that fashion. And in your example, if based on my code, the variable xml does not yet exist at the time you are initially passing it.
???
Code:
function getReqObjPost(url,params,func)
{
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
if(new ActiveXObject("Microsoft.XMLHTTP"))
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
}
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
{
if(xmlhttp.status==200)
{
var str=xmlhttp.responseText;
var xml=xmlhttp.responseXML;
callback=func; Doesn't work
func This either
}
else
{
noData(xmlhttp.status,url);
}
}
}
var now=new Date();
params=params + "&c_date"+now.getSeconds()+"=" + now;
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
xmlhttp.send(params);
}
I'm calling it like this:
Code:
<script type="text/javascript">
window.onload=function(){
var x=4
getReqObjPost("test.asp","",function(){doIt(xml,x)});
}
function doIt(xml,m){
alert(m);
var content=toXHTML(xml.documentElement);
document.getElementById('container').appendChild(content);
}
</script>