Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 修改url中的参数(带变量)_Javascript_Function_Variables_Parameters_Url Parameters - Fatal编程技术网

Javascript 修改url中的参数(带变量)

Javascript 修改url中的参数(带变量),javascript,function,variables,parameters,url-parameters,Javascript,Function,Variables,Parameters,Url Parameters,因此,我有参数“referer”用于交通起点: 以及站点国家的参数“站点”: 但是在我使用的特定平台上,只有“referer”参数可以通过导航传递。 (此应用程序是远程的,我无法访问源) 但是,我需要传递两个参数。。。我的想法是修改第一个页面视图上的“referer”参数,使其成为: 我尝试了这个功能: <script> function Replace() { var paramSite = {{Get Site}}; var paramRef = {{Get Re

因此,我有参数“referer”用于交通起点:

以及站点国家的参数“站点”

但是在我使用的特定平台上,只有“referer”参数可以通过导航传递。 (此应用程序是远程的,我无法访问源)

但是,我需要传递两个参数。。。我的想法是修改第一个页面视图上的“referer”参数,使其成为:

我尝试了这个功能:

<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>

函数替换(){
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}”);
返回newUrl.reload
}

它正在测试变量中工作。。。但是我无法在网站上使用它。

您可以尝试使用此方法更新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;
  }
}

您可以尝试使用此方法更新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;
  }
}

您可以使用此函数从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)

您可以使用此函数从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)

我应该用变量替换“$1”和“$2”,对吗?这对我不起作用…我应该用变量替换“$1”et“$2”,对吗?这对我不起作用。。。