2014-02-21 57 views
1

我通過sb代碼並希望實現類似的代碼。他用:如何通過url解析數據並用javascript取回

htmlItems += '<li><a href="show-feed.html?url=' + items[i].url + '">' + 
    items[i].name + '</a></li>'; 

,並用這個javascript代碼以檢索URL和解析的方法

.on('pageinit', '#show-feed-page', function() { 
     var url = this.getAttribute('data-url').replace(/(.*?)url=/g, ''); 
     Application.initShowFeedPage(url); 

它工作得很好,我想分析三個值的方法如 <a href="showProduct.html?code='+ items[i].code +',name='+items[i].name+',price='+items[i].price+'">",需要代碼retrive和解析的方法

initShowProductPage(code,name,price); 

回答

2

首先,你的HTML是錯誤的,你必須準備適當的查詢字符串格式,更新的HTML標記是:

<a href="showProduct.html?code='+ items[i].code + 
     '&name='+items[i].name+'&price='+items[i].price+'">" 

您有權訪問window.location.href並解析它的查詢字符串parameters.You可以寫一個解析URL,像下面的方法:

function parseURL() { 
     var vars = []; 
     var hashes = window.location.href.slice(window.location.href.indexOf('?')+1).split("&"); 
     for (var i=0;i<hashes.length;i++) { 
      hash = hashes[i].split("="); 
      vars.push(hash[0]); 
      vars[ hash[0] ] = hash[1]; 
     } 
     return vars; 
} 

然後你可以使用codename訪問他們, price參數如下圖所示:

.on('pageinit', '#show-feed-page', function() { 
     var hashObj = parseURL(); 
     // To get code 
     var code = hashObj["code"]; 

     // To get name 
     var name = hashObj["name"]; 

     // To get price 
     var price = hashObj["price"]; 

     // Now call the method 
     initShowProductPage(code,name,price); 

}); 
+0

感謝您的答覆,但我仍然有錯誤'getAsset'沒有定義 –

+0

@Samuel Moshie對不起它的錯字Ë rror(不需要getAsset)。我已經更新了答案,請立即嘗試。 –

+0

非常感謝我已經試過n它現在沒有錯誤運行,但沒有值被分配給變量代碼,價格和名稱。我使用alert在〜initShowProductPage(code,name,price)〜方法之前顯示它們的值,並且它警告未定義。請幫助 –