说我向某人提供了一个指向我的页面的链接,如下所示
www.linkone.com?something=ten
当他们访问该页面时,该页面的URL将显示该参数。如果在那个页面上我有一个像这样的链接
<a href="linktwo.html"> Link Two </a>
当他们点击它时,Link Two的网址看起来像
www.linkone.com/linktwo.html
有没有办法将第一个链接中的参数添加到页面中的任何其他链接?因此,当他们访问Link Two时,我想以url结束
www.linkone.com/linktwo.html?something=ten
我知道这可能是通过javascript实现的,但主页上有很多链接到网站内的其他页面,我需要在所有链接上进行参数化。实现这一目标的最佳方法是什么?
由于
答案 0 :(得分:5)
$('a:not([href=#])').on('click', function (e) {
e.preventDefault();
location.href = this.href + "your param";
});
答案 1 :(得分:1)
实现类似功能的一种方法是使用cookie或会话。当用户使用其他参数访问您的站点时,请使用该参数在父页面上设置cookie,以便其他呼叫/链接可用。你也可以在会话中这样做。会话将保留该值,直到会话超时,并且cookie将根据为其设置的到期日期到期。
答案 2 :(得分:1)
您可以在Document Ready处更新锚点href
属性。当前HTML查询字符串的代码解决方案下面包含选定的锚点href属性。
var selectedAnchors = $("a");
selectedAnchors.each( function () {
var itemHref = $(this).attr("href");
if ( itemHref.indexOf("?") > -1 )
itemHref += "&";
else
itemHref += "?";
itemHref += location.search.substr(1);
$(this).attr("href", itemHref );
});
答案 3 :(得分:1)
请试试这个。只需替换#34;&#34;用你自己的参数。
由于
$("a").click(function(e){
e.preventDefault();
var a = $(this).attr('href');
var something = getUrlParameter('something');
var newURL = a+"?something="+something;
window.location.href = newURL;
});
var getUrlParameter = function getUrlParameter(sParam) {
var sPageURL = decodeURIComponent(window.location.search.substring(1)),
sURLVariables = sPageURL.split('&'),
sParameterName,
i;
for (i = 0; i < sURLVariables.length; i++) {
sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] === sParam) {
return sParameterName[1] === undefined ? true : sParameterName[1];
}
}
};
HTML:
<a href="http://google.com/">Google</a>
答案 4 :(得分:1)
我的建议是:
$('a:not([href=#])').click(function(e) {
e.preventDefault();
// Getting query-string parameters from current page URL.
var query = location.search.substr(1);
// Getting URL from current link;
var url = new URL($(this).attr('href'));
// Updating query-string parameters of current link.
url.search += (url.search.indexOf('?') == 0 ? '&' : '?') + query;
// Getting the link target.
var target = $(this).attr('target');
// Navigating to new URL.
if (target) {
window.open(url.toString(), target);
} else {
location.assign(url.toString());
}
});
答案 5 :(得分:-3)
这是可能的(使用php):
<a href="http://www.linkone.com/linktwo.html?something=
<?php echo $_GET["something"]; ?>"> Link Two </a>