我浏览了sb代码并希望实现类似的代码。他用过:
htmlItems += '<li><a href="show-feed.html?url=' + items[i].url + '">' +
items[i].name + '</a></li>';
并使用此javascript代码来检索网址并解析方法
.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+'">"
,需要代码来检索和解析方法
initShowProductPage(code,name,price);
答案 0 :(得分:2)
首先,你的html是错误的,你必须准备正确的查询字符串格式,更新的html标记是:
<a href="showProduct.html?code='+ items[i].code +
'&name='+items[i].name+'&price='+items[i].price+'">"
您必须访问window.location.href
并为查询字符串参数解析它。您可以编写一个解析网址的方法,如下所示:
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;
}
然后,您可以使用code
,name
和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);
});