【问题标题】:How to populate variables in href如何在href中填充变量
【发布时间】:2016-05-27 06:09:03
【问题描述】:

我目前正在使用以下方法从我的查询字符串中提取变量:

function getUrlVars()
{
  var vars = [], hash;
  var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
  for(var i = 0; i < hashes.length; i++)
  {
    hash = hashes[i].split('=');
    vars.push(hash[0]);
    vars[hash[0]] = hash[1];
  }
  return vars;
}

var s1 = getUrlVars()["s1"];
var s2 = getUrlVars()["s2"];
var s3 = getUrlVars()["s3"];

现在,我知道这是正确的做法。

我遇到的问题是:我需要在代码中的相应参数之后填充这些变量,但我不知道如何。

<body>
  <div id="main">
  <div id="header">
    <div id="mainheader">

      <a href="https://domain.com/index.php?s1=s1&s2=s2&s3=s3" target="_blank"><img id="topbanner" src="picture.gif"></a>

  </div>
</body>

对此的任何帮助将不胜感激。

【问题讨论】:

    标签: javascript jquery variables


    【解决方案1】:

    我会使用 Javascript 在运行时动态创建您的 URL。像这样的东西应该可以工作:

    <a href="#" onclick="RedirectURL();return false;"><img id="topbanner" src="picture.gif"></a>
    

    然后在你的 JS 代码中:

    function RedirectURL()
    {
        var s1 = getUrlVars()["s1"];
        var s2 = getUrlVars()["s2"];
        var s3 = getUrlVars()["s3"];
    
        var URL = "https://domain.com/index.php?s1=" + s1 + "&s2=" + s2 + "&s3=" + s3;
    
        window.location = URL;
    }
    
    function getUrlVars()
    {
        var vars = [], hash;
        var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
        for(var i = 0; i < hashes.length; i++)
        {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
        return vars;
    }
    

    【讨论】:

      【解决方案2】:

      你试过这样吗.. 为您的链接标签提供 id。

      <a id="myLink" href="#" target="_blank"><img id="topbanner" src="picture.gif"></a>
      

      那么你可以简单地做到这一点。

      var s1 = getUrlVars()["s1"];
      var s2 = getUrlVars()["s2"];
      var s3 = getUrlVars()["s3"];
      $("a#myLink").attr("href","https://domain.com/index.php?s1=" + s1 + "&s2=" + s2 + "&s3=" + s3);
      

      【讨论】:

        【解决方案3】:

        有几种方法可以做到:

        1. 如果您想挑选要从当前位置传递到新 URL 的参数,请使用以下方法:

        主体:

        <body>
          <div id="main">
          <div id="header">
            <div id="mainheader">
        
              <a href="https://domain.com/index.php?" target="_blank"></a><br>
              <a href="https://domain.com/index.php?" target="_blank"></a>
        
          </div>
        </body>
        

        JS:

        function getParams() {
            var params = location.search.substring(1);
            var arrParams = params.split('&');
            var objParams = {};
            for(var i=0; i<arrParams.length; i++) {
                var arrParam = arrParams[i].split("=");
                objParams[arrParam[0]] = arrParam[1];
            }
            return objParams;
        }
        
        var objParams = getParams();
        var theURL = 'https://domain.com/index.php?s1=' + objParams["s1"] + "&s3=" + objParams["s3"];
        $($('a')[0]).attr('href',theURL).attr('title',theURL).html(theURL);
        
        1. 否则,如果您只想传递所有参数,请使用:

        正文:

        <body>
          <div id="main">
          <div id="header">
            <div id="mainheader">
        
              <a href="https://domain.com/index.php?" target="_blank"></a><br>
              <a href="https://domain.com/index.php?" target="_blank"></a>
        
          </div>
        </body>
        

        JS:

        function getParams2() {
            var params = location.search.substring(1);
            return params;
        }
        
        var Params = getParams2();
        $($('a')[1]).attr('href','https://domain.com/index.php?' + Params).attr('title',$($('a')[1]).attr('href')).html($($('a')[1]).attr('href'));
        

        把它们放在一起:

        <body>
          <div id="main">
          <div id="header">
            <div id="mainheader">
        
              <a href="https://domain.com/index.php?" target="_blank"></a><br>
              <a href="https://domain.com/index.php?" target="_blank"></a>
        
          </div>
        </body>
        
        <script type="text/javascript">
        function getParams() {
            var params = location.search.substring(1);
            var arrParams = params.split('&');
            var objParams = {};
            for(var i=0; i<arrParams.length; i++) {
                var arrParam = arrParams[i].split("=");
                objParams[arrParam[0]] = arrParam[1];
            }
            return objParams;
        }
        
        var objParams = getParams();
        var theURL = 'https://domain.com/index.php?s1=' + objParams["s1"] + "&s3=" + objParams["s3"];
        $($('a')[0]).attr('href',theURL).attr('title',theURL).html(theURL);
        
        
        function getParams2() {
            var params = location.search.substring(1);
            return params;
        }
        
        var Params = getParams2();
        $($('a')[1]).attr('href','https://domain.com/index.php?' + Params).attr('title',$($('a')[1]).attr('href')).html($($('a')[1]).attr('href'));
        
        </script>
        

        【讨论】:

          猜你喜欢
          • 2017-03-19
          • 1970-01-01
          • 2021-02-13
          • 2016-02-19
          • 1970-01-01
          • 2015-07-23
          • 1970-01-01
          • 2022-07-30
          • 2014-03-25
          相关资源
          最近更新 更多