我只在这里使用Javascript,因为这是一个广告登陆器(登陆页面),客户端不希望jQuery减慢网页速度。我需要一些Javascript,这是在登陆器上获取'tid'查询参数的最佳方式(最少的代码行)。例如,假设这个广告链接转到着陆器:
http://example.com/lander1.php?tid=med01
您能否提供在Javascript中获取查询参数的最佳方式,并使其在IE7和转发(FF,Chrome,Safari,Opera和IE)中都能正常工作?这是我想出来的,但也许你可以更加优化它?使其更加紧凑的原因是像素跟踪的片段尽可能小。我的意思是,我已经有额外的行(这里没有显示)来创建一个回发参数数组,然后调用远程Javascript将这些额外的参数传递给PIWIK跟踪系统。
try {
var q = {};
var ls1 = location.search.substr(1) + '&';
var ls2 = ls1.split('&');
for(var i1 in ls2) {
var i2 = ls2[i1];
q[i2.split('=')[0]] = i2.split('=')[1];
}
} catch(e) {}
//然后我可以使用q.tid来获取URL上的'tid'查询参数。
答案 0 :(得分:0)
试试这个
var getQueryParameterByName = function (name) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
};
答案 1 :(得分:0)
来自另一篇文章: 您也可以使用Rodney Rehm的URI.js库。
var qs = URI('www.mysite.com/default.aspx?dest=aboutus.aspx').query(true);
alert(qs.tid);
答案 2 :(得分:0)
我认为这可行:
var tid = '';try{tid=location.search.substr(1).split('=').join('#=').split(/=/).join('#').split('tid##')[1].split('&')[0];}catch(e){}
如果我在URL的末尾添加& test = 1,这甚至可以工作,我甚至可以通过在'test'上面交换'tid'来获得'test'查询参数。