我对这个JS的东西有点新,并且我一直在冲浪,冲浪和阅读,但我对这一个问题感到难过。
我的网站可能包含网址中的参数。一个名为“who”的参数。
如果用户访问该网站并且他们的网址为http://example.com/?who=123,我希望他们能够点击href链接并继续执行其参数。因此,如果链接转到http://anotherexample.com,我希望链接也包含用户的参数。 http://anotherexample.com/?who=123
实现这一目标的最佳方法是什么?它只需要在其中一个链接上,因此不需要让整个站点传递参数。
谢谢!
答案 0 :(得分:0)
这对您来说是否足够?
来源:https://css-tricks.com/snippets/javascript/get-url-variables/
var svalue=location.search.match(new RegExp("[\?\&]" + "who" + "=([^\&]*)(\&?)","i"));
yourelement.href=yourelement.href+(svalue?svalue[0]:"");
答案 1 :(得分:0)
这是一种在javascript中可以实现的方法 首先,当文档加载时,在你的js中写一个函数来从url
中获取参数function getparms(variable)
{
let item = window.location.search.substring(1);
let vars = item.split("&");
for (let i=0;i< vars.length;i++) {
let pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}
此函数将从URL
返回以下内容http://www.somesite.com/index.html?who=100&location=2
致电getparams(&#39;谁&#39;)将返回&#34; 100&#34;
所以你会把它称为:
let myParam = getparams('id');
您可以在新功能中构建网址并导航到:
function goToUrl(urlParam){
let hostAddress= 'yourwebsiteaddress';
let url = "http://" + hostAddress "/?=who" + urlParam;
//go to address
window.location.href = url;
}
将被称为goToUrl(myParam);
*免责声明:我是在动态写的,所以它可能不是100%语法正确但它应该足够准确,作为伪代码来帮助你完成你想要的。
答案 2 :(得分:0)
您谈到了href
,因此我假设所有链接都设置了<a>
标记。
有很多选择,我会向您展示最简单,最干净的选项。
因此,假设当前网址为http://www.example.com/?who=123
。
var who = window.location.href.split('?')[1]; // Get `?who=123` from current url
var a = document.getElementsByTagName('a'); // Get all `<a>`
var href;
// Loop through all `<a>`
for (var i = 0; i < a.length; i++){
// Add `?who=123` to all hrefs found.
a[i].href += who;
}
您可以随意将document.getElementsByTagName('a')
更改为document.getElementById()
以满足您的需求。