2013-08-28 28 views
1

我想檢索xml文件中的值並在另一個函數中使用此值。在xml文件中檢索一個值並在Javascript的另一個函數中使用它

我用:

function xmlparser() { 
    var xmlhttp, myvar; 
    xmlhttp = new XMLHttpRequest(); 
    xmlhttp.open("GET", "http://www.domain.net/xmlfile.xml", true); 
    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
      myvar = xmlhttp.responseXML.documentElement.getElementsByTagName("date")[0].textContent; 
     } 
    } 
    xmlhttp.send(); 
} 

我怎樣才能在其他功能使用myvar? 像

function test() { 
    alert(myvar); 
} 

感謝

回答

1

像這樣:

function test(myvar) { 
    alert(myvar); 
} 

function xmlparser() 
{ 
    var xmlhttp, xml_build, xml_dashboard; 
    xmlhttp=new XMLHttpRequest(); 
    xmlhttp.open("GET", "http://www.domain.net/xmlfile.xml", true); 
    xmlhttp.onreadystatechange=function() 
    { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
      myvar=xmlhttp.responseXML.documentElement.getElementsByTagName("date")[0].textContent; 
      test(myvar); 
     } 
    } 
    xmlhttp.send(); 
} 
+0

嗨 謝謝您的回答。但功能「測試」在一個大功能中做很多事情。我只想在運行'測試'之前在'測試'中使用'myvar'。 –

+1

當您發出AJAX請求時,一旦AJAX HTTP請求返回,就會運行'xmlhttp.onreadystatechange'函數。所以,myvar變量只在AJAX調用返回後纔會被設置(這可能需要花費很少的時間)。直到在'xmlhttp.onreadystatechange'函數中設置它之後,才能依賴它的值。依賴於myvar(test)的函數只應在AJAX調用返回並設置myvar後運行。您應該在AJAX回調函數內部調用測試,否則所有投注將關閉myvar的設置。我希望這是有道理的。 – zigdawgydawg

+0

這非常有意義,幫了我很多。我在代碼中做了一些改動,它可以工作。 –

相關問題