我将如何将我的网站的每个链接的末尾按照编辑每个链接?如何添加&ref = 123每个链接
e.g www.WebsiteName.com/?ref=123
所以,如果我去www.WebsiteName.com/aboutus.php
我希望它添加到?ref=123
URL的结束。
我将如何将我的网站的每个链接的末尾按照编辑每个链接?如何添加&ref = 123每个链接
e.g www.WebsiteName.com/?ref=123
所以,如果我去www.WebsiteName.com/aboutus.php
我希望它添加到?ref=123
URL的结束。
var has_querystring = /\?/;
$("a[href]").
each(function(el) {
if (el.href && has_querystring.test(el.href)) {
el.href += "&ref=123";
} else {
el.href += "?ref=123";
}
});
+1这就是我要回答的 – Mouhannad 2010-10-21 15:46:12
确切地说,你需要检查链接是否已经有查询字符串,尽管我可能会重构一些代码,并使用indexOf()来代替。 +1 – KennethJ 2010-10-21 15:46:24
@Kenneth - 您只需*检查您是否知道这可能存在。如果你知道他们永远不会从源头提供,那将是很浪费的。 – user113716 2010-10-21 15:54:09
取决于你的意思是没有编辑每个链接。
如果你的意思,你只是不想在你的源手动添加它,你可以这样做:
$('a[href]').attr('href', function(i, hrf) { return hrf + '?ref=123';});
或者,如果你的意思是,你不希望有这样做,您可以附加一个.click()
处理程序,该程序将在链接被点击时添加该值。
$('a[href]').click(function(e) {
e.preventDefault();
window.location = this.href + '?ref=123';
});
如果链接已经是这样:www.websitename.com/?xpto = 123? :-) – acm 2010-10-21 15:42:22
多数民众赞成那goto等待7分钟才接受你的答案 – Rickstar 2010-10-21 15:45:06
嗯,我坚持实际要求的问题。我们可以改变这个问题,然后整天提出不同的答案。 – user113716 2010-10-21 16:03:38
$('a[href]').attr("href", function(){
this.href + '?ref=123';
});
将是一个非常简单的方法。你可能不得不添加一些错误检查,以确保你没有破坏任何其他参数等。
我会用RewriteRule。在我看来,这是最简单和最可靠的方法。也就是说不能用PHP解析或战斗DOM加载问题页面的JavaScript
下面是一个例子:
# For blank query only
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)\.php$ /$1.php?ref=123 [L]
# Append to existing query
RewriteCond %{REQUEST_URI} \.php$
RewriteRule ^(.*)$ /$1&ref=123 [QSA,L]
请记住,当然最终用户需要对任何启动Javascript这些解决方案的工作。您可以使用输出缓冲来更改链接服务器端,以及phpquery或regex。 – mellowsoon 2010-10-21 22:23:38