我在jquery中尝试alert
查询字符串参数因为我在页面加载时需要ID
,所以我可以在加载控件时创建一些html元素。我似乎无法访问该参数,因为URL重写到位,URL看起来与原始URL不同。
www.somesite.com/camping?ProductId=2457&ism=0&cl=PURPLE
www.somesite.com/camping/travel-mug-16oz-double-wat-with-adapter-p2457.aspx?ism=0&cl=PURPLE
现在,如何在Jquery中访问ProductId查询字符串值。
$(document).ready(function () {
var param = getParameterByName("ProductId");
alert(param) // shows PURPLE as cl in URL is set to cl=PURPLE
});
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
编辑:
这是我尝试访问服务器端上的Querysting对象时的屏幕截图..
答案 0 :(得分:1)
您当前的代码正在尝试访问查询字符串中的值,该值不再存在,因为它已在服务器上重写。
您可以使用正则表达式来剖析重写的URL,不需要jQuery。假设您的productId
始终以-p
开头,紧接着.aspx
,那么这将有效:
var url = 'www.somesite.com/camping/travel-mug-16oz-double-wat-with-adapter-p2457.aspx?ism=0&cl=PURPLE'
var matches = url.match(/-p(\d+)\.aspx/);
var productId = matches && matches[1];
console.log(productId); // = 2457
如果与正则表达式不匹配, productId
将为null
。