2015-11-03 74 views
2

嗨我已經通過HTML做了一個按鈕,我試圖讓按鈕被點擊時出現一個XML頁面。我需要通過JavaScript做到這一點,但它似乎並沒有爲我工作。Javascript和XML按鈕

我的HTML:

<input type="button" value="Shop 1" id ="one"> 
<input type="button" value="Shop 2" id ="two"> 
<input type="button" value="Put Selected Pictures in Cart" id ="three"> 

我的javascript:

function getData(filename) { env = new XMLHttpRequest(); env.open("GET",   filename); } 

function init() 
{ 

document.getElementById('one').onclick = function(){ getData('shop1.xml'); } 
document.getElementById('two').onclick = function(){ getData('shop2.xml'); } 
} 

任何幫助,將不勝感激。謝謝。

+0

請發佈您的'getData'函數... – nf071590

+0

function getData(filename) { \t env = new XMLHttpRequest(); \t env.open(「GET」,filename); } – 121910

+0

要麼你沒有共享你的所有代碼,要麼你需要確保*發送你的XMLHttpRequest。到目前爲止,您只是打開請求,而不是實際發送它。然後你需要一些實際的代碼來顯示請求的結果,因爲這似乎也沒有。 –

回答

1

作爲的XMLHttpRequest的本質是異步的,你應該處理一個回調函數獲取的數據(或者你可以把它同步通過指定env.open("GET",url, true)您的新getData功能看起來像這樣:

function getData(url, callback) { 
    var env = new XMLHttpRequest(); 
    env.onload = function() { 
    callback(env.response); 
    }; 
    env.open("GET", url); 
} 

而且可以按如下方式使用它:

var one = document.getElementById('one'), 
    two = document.getElementById('two'); 

one.onclick = function(){ 
    getData('shop1.xml', function(response) { 
    /* do whatever you want with the response XML */ 
    }); 
} 
two.onclick = function(){ 
    getData('shop2.xml', function(response) { 
    /* do whatever you want with the response XML */ 
    }); 
} 

更多信息,請參見MDN: Using XMLHttpRequest請注意,這隻會得到xmlDoc中的字符串;如果你需要步行它作爲一個XML樹,你將需要。使用DOMParser API