如何在 href 中填充变量

How to populate variables in href

本文关键字:填充 变量 href      更新时间:2023-09-26

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

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在运行时动态创建你的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;
}

你试过这样吗..为您的链接代码提供 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);

有几种方法可以做到这一点:

  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>