使用php或javascript或regex,是否有一个快速(希望一行)从前一个(引用者)URL获取查询字符串?
实施例,
用户在
www.sample.com?one
然后点击链接转到
www.sample.com?two
从第二页开始......我想知道以前的查询字符串“one”。
答案 0 :(得分:2)
这或许?
var qs = document.referrer.split('?')[1] || '';
看起来这是一场比赛:)
var r = document.referrer,
indexOfQm = r.indexOf('?'),
len = r.length;
/(?:[^?]+)\??(.*)/.exec(r)[1];
r.split('?').shift().pop() || '';
r.slice(indexOfQm === -1? len : indexOfQm - len + 1);
r.substring(indexOfQm === -1? len : indexOfQm + 1);
r.replace(/^.+?(?:\?(.*)|$)/, '$1');
r.split('').slice(indexOfQm + 1).join('');
[].reduce.call(r, function (res, c) {
if (res.found) res.qs += c;
else if (c === '?') res.found = true;
return res;
}, { found: false, qs: '' }).qs;
答案 1 :(得分:2)
您需要在服务器端获取引荐来源字符串。
如果使用PHP,它就像这样简单:
$referrer = $_SERVER['HTTP_REFERER'];
然后将字符串拆分为'?'签到一个数组,你有数组索引1
的查询字符串答案 2 :(得分:2)
这是每行一个单行:
document.referrer.split("?").slice(1).join("?")
document.referrer.substring(document.referrer.indexOf("?") + 1)
/(?:\?(.+))?/.exec(document.referrer)[1]
不过, referrer
并不是一件好事。人们可以并且确实将它们关闭。 (我愿意。)考虑使用cookie或本地存储。