修改URL参数(与变量)

问题描述 投票:0回答:2

所以,我对于交通原点参数“引荐”:

https://example.com?referer=origin

和参数“网站”的网站的国家:

https://example.com?site=us

但我有工作在特定平台上,只有“引荐”参数可通过导航通过。 (这个程序是远程和我不能访问源)。

不过,我需要两个参数传递......我的想法是使它成为修改的第一个页面视图中的“引荐”参数:

https://example.com?referer=origin-us

我想这个功能:

<script>

function Replace() {
  var paramSite = {{Get Site}};
  var paramRef = {{Get Referer}};
  var url = window.location.toString();
  var newUrl = url.replace(/referer={{Get Referer}}/,  "referer={{Get Referer}}-{{Get Site}}");
  return newUrl.reload
}
<script>

它是工作在测试变量...但我不能让在现场工作。

javascript function variables parameters url-parameters
2个回答
1
投票

你可以尝试的URL更新查询字符串,这个方法。

function updateQueryStringParameter(uri, key, value) {
  var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
  var separator = uri.indexOf('?') !== -1 ? "&" : "?";
  if (uri.match(re)) {
    return uri.replace(re, '$1' + key + "=" + value + '$2');
  }
  else {
    return uri + separator + key + "=" + value;
  }
}

How can I add or update a query string parameter?


1
投票

您可以使用此功能来得到URL参数值

function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, '\\$&');
    var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, ' '));
}

我创建了一个示例代码,以达到你的要求。

var paramSite = "https://example.com?site=us"
var paramRef = "https://example.com?referer=origin"

var site = getParameterByName("site", paramSite)

var ref = getParameterByName("referer", paramRef)

var newUrl = updateQueryStringParameter(paramRef, "referer", ref + "-" + site)
© www.soinside.com 2019 - 2024. All rights reserved.