[求助]关于xmlhttp.onreadystatechange返回值的问题?
 var   xmlhttp; 
 var   lrchtml= ' ';   
 function   readlrc(specid,songid){  	 
 xmlhttp   =   getXMLHttpRequest();	 
             xmlhttp.open( "GET ",    "aaa.asp?url=http://xxx.xxx.xxx.xxx:xxx/lrc/10566/1.lrc ",   true);       
          	xmlhttp.onreadystatechange   =   function   fnRun(){ 
 		if((xmlhttp.readyState   ==   4)   &&   (xmlhttp.status   ==   200)){ 
 			lrchtml   =   gb2utf8(xmlhttp.responseBody); 
 [alert(lrchtml)这里打印有值] 
 		} 
 	}       
 	xmlhttp.setRequestHeader( "Content-Type ",    "application/x-www-form-urlencoded ");    
 	xmlhttp.send(null);  	 
 [alert(lrchtml)这里打印就没有值了,我不知道用什么办法可以给这个lrchtml全局变量赋值]   
 	if(lrchtml== ' '){ 
 		readlrc2(specid,songid); 
 	}		  	 
 }     
 请高人指点一下吧!!!
------解决方案--------------------把 	if(lrchtml== ' '){ 
 		readlrc2(specid,songid); 
 	}		  	  
 放到onreadystatechange 的函数里 
 因为你send之后再执行你的if,可能数据没有返回回来 
 所以可能是空
------解决方案--------------------肯定是空的,你的函数在Ajax中还没有返回lrchtml的值那
------解决方案--------------------xmlhttp = getXMLHttpRequest();	 
     xmlhttp.open( "GET ",  "aaa.asp?url=http://xxx.xxx.xxx.xxx:xxx/lrc/10566/1.lrc ", true);   
    	xmlhttp.onreadystatechange = function fnRun(){ 
 		if((xmlhttp.readyState == 4) && (xmlhttp.status == 200)){ 
 			lrchtml = gb2utf8(xmlhttp.responseBody); 
                             if(lrchtml== ' '){ 
 		               readlrc2(specid,songid); 
 	                   } 
 		} 
 	}   
 	xmlhttp.setRequestHeader( "Content-Type ",  "application/x-www-form-urlencoded ");  
 	xmlhttp.send(null);  	           		  	 
 }
------解决方案--------------------把这个   xmlhttp.open( "GET ",  "aaa.asp?url=http://xxx.xxx.xxx.xxx:xxx/lrc/10566/1.lrc ", true);  
 改成异步的   
   xmlhttp.open( "GET ",  "aaa.asp?url=http://xxx.xxx.xxx.xxx:xxx/lrc/10566/1.lrc ", false);  
------解决方案--------------------其实你没有明白我说的意思   
 var xmlhttp; 
 var lrchtml= ' ';  //全局变量   
 function readlrc(){  	 
 xmlhttp = new ActiveXObject( "Microsoft.XMLHTTP "); 
     xmlhttp.open( "GET ",  "aaa.asp?url=http://xxx.xxx.xxx.xxx:xxx/lrc/10566/1.lrc ", true);   
    	xmlhttp.onreadystatechange = function fnRun(){ 
 		if((xmlhttp.readyState == 4) && (xmlhttp.status == 200)){ 
 			lrchtml =  '我给它赋值了 ';  //给全局变量赋值 
                             alert(lrchtml);   //能打印出值????? 
 		} 
 	}   
 	xmlhttp.setRequestHeader( "Content-Type ",  "application/x-www-form-urlencoded ");  
 	xmlhttp.send(null);	  	 
 }   
 readlrc();   //调用函数   
 alert(lrchtml); //为什么这里打印不出值?????     
 你调用了readlrc()函数 
 但是调用了readlrc函数并不等于你就调用了onreadystatechange = function fnRun() 函数 
 如果你没有调用fnRun函数,那么你的全局变量的值还是你初始的时候的值 " " 
 所以你可以这样试试 
 readlrc(); 
 if((xmlhttp.readyState == 4) && (xmlhttp.status == 200)){ 
    alert(lrchtml);  
 }else{ 
    alert( "status not change "); 
 }   
 这样同样可以说明你想知道的问题 
 因为xmlhttp也是全局变量,他的值在你调用readlrc的时候变了 
 你在函数readlrc之外可以取到他的值。