如何通过编辑每个链接将我的网站的每个链接的结尾放在后面?
例如www.WebsiteName.com/?ref=123
所以,如果我转到www.WebsiteName.com/aboutus.php
,我希望它将?ref=123
添加到网址的末尾。
答案 0 :(得分:8)
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 :(得分:3)
取决于的含义而不修改每个链接。
如果您的意思是您只是不想在源中手动添加它,则可以执行以下操作:
$('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';
});
答案 2 :(得分:1)
我会使用RewriteRule。在我看来,这是最简单,最可靠的方式。也就是说不用PHP解析页面或用JavaScript来解决DOM加载问题
以下是一个例子:
# 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]
答案 3 :(得分:0)
$('a[href]').attr("href", function(){
this.href + '?ref=123';
});
这将是一个非常简单的方法。您可能需要添加一些错误检查以确保您没有破坏任何其他参数等。