首页 文章

在href链接中传递URL参数

提问于
浏览
0

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

我有一个网站,可能包含URL中的参数 . 一个名为“who”的参数 .

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

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

谢谢!

3 回答

  • 0

    这对你来说足够吗?

    Sourcehttps://css-tricks.com/snippets/javascript/get-url-variables/

    var svalue=location.search.match(new RegExp("[\?\&]" + "who" + "=([^\&]*)(\&?)","i"));
    yourelement.href=yourelement.href+(svalue?svalue[0]:"");
    
  • 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('who')将返回“100”

    所以你会称之为:

    let myParam = getparams('id');
    

    您可以在新功能中构建URL并导航到它:

    function goToUrl(urlParam){
    let hostAddress= 'yourwebsiteaddress';
    let url = "http://" + hostAddress "/?=who" + urlParam;
    
    //go to address
    window.location.href = url;
    }
    

    这将被称为 goToUrl(myParam);

    *免责声明:我是在动态编写的,因此它可能不是100%语法正确但它应该足够准确,作为伪代码,以帮助您实现您想要的 .

  • 0

    你谈到 href ,所以我假设所有链接都设置了 <a> 标签 .

    有很多选择,我会告诉你最简单,最干净的选择 .

    因此,假设当前的URL是 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() 以满足您的需求 .

相关问题