在href链接中传递URL参数

时间:2017-12-08 01:07:26

标签: javascript

我对这个JS的东西有点新,并且我一直在冲浪,冲浪和阅读,但我对这一个问题感到难过。

我的网站可能包含网址中的参数。一个名为“who”的参数。

如果用户访问该网站并且他们的网址为http://example.com/?who=123,我希望他们能够点击href链接并继续执行其参数。因此,如果链接转到http://anotherexample.com,我希望链接也包含用户的参数。 http://anotherexample.com/?who=123

实现这一目标的最佳方法是什么?它只需要在其中一个链接上,因此不需要让整个站点传递参数。

谢谢!

3 个答案:

答案 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()以满足您的需求。

相关问题