Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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
删除url参数javascript_Javascript_Url - Fatal编程技术网

删除url参数javascript

删除url参数javascript,javascript,url,Javascript,Url,我需要创建这个url 像这样 我只想删除sourceType,而保留其他所有内容 这是我到目前为止所做的,当url是 但是,由于在sourceType之后添加了更多的键,所以不会发生任何事情。我还在谷歌标签管理器中运行这个,所以我不能刷新页面 (function () { var sourceType; var query = parseQuery(window.location.search); var history = window.history

我需要创建这个url

像这样

我只想删除sourceType,而保留其他所有内容

这是我到目前为止所做的,当url是 但是,由于在sourceType之后添加了更多的键,所以不会发生任何事情。我还在谷歌标签管理器中运行这个,所以我不能刷新页面

   (function () {
    var sourceType;
    var query = parseQuery(window.location.search);
    var history = window.history
    delete query.sourceType 
    var search = stringifyQuery(query);
    if (window.location.search) {
      sourceType = window.location.search
          .substr(1)
          .split('&')
          .filter(function (i) {return ~i.indexOf('sourceType=')})
          .map(function (i) {return i.split('=')[1] })[0]
     history && history.replaceState && history.replaceState(history.state, null, window.location.pathname + search)
    }
  })()  

  function parseQuery (locationSearch) {
  if (typeof locationSearch !== 'string' || !locationSearch.length) {
    return {}
  }

  var query = {}
  locationSearch.substr(1).split('&').forEach(function (partStr) {
    var parts = partStr.split('=')
    var key = parts[0]
    var val = decodeURIComponent(parts[1])
    if (query.hasOwnProperty(key)) {
      var existingVal = query[key]
      if (existingVal instanceof Array) {
        existingVal.push(val)
      } else {
        query[key] = [existingVal, val]
      }
    } else {
      query[key] = val
    }
  })
  return query
}

function stringifyQuery (query) {
  if (!query) return ''

  return '?' + Object.keys(query).map(function (key) {
    var val = query[key]
    if (val instanceof Array) {
      return val.map(function (valPart) {
        return [key, encodeURIComponent(valPart)].join('=')
      }).join('&')
    } else {
      return [key, encodeURIComponent(val)].join('=')
    }
  }).join('&')
}

无法从您提供的上述src中了解太多。如果要从URL中删除查询字符串,以下内容可以帮助您

window.location.href = window.location.href.split('?')[0];
这一行将拆分并为您提供一个没有查询提示的URL。

好的,这似乎有效

所以如果我的url是

我想让它看起来像


不知道你在做什么,但我认为这应该行得通<代码>窗口.位置.搜索.替换(/sourceType=[^&]*/,“”)。替换(“?&”,“?”)。使用lib,但是还有其他合理的选择。在GA的视图设置中使用“排除URL查询参数”怎么样?这可以有效地从您的URL中删除输入的QSP,而无需任何编码。
 function changeUrl()  {
      var sourceType;
      var query = parseQuery(window.location.search);
      var history = window.history
      delete query.sourceType
      var search = stringifyQuery(query);
      history && history.replaceState && history.replaceState(history.state, null, window.location.pathname + search)
      }


  function parseQuery(locationSearch) {
      if (typeof locationSearch !== 'string' || !locationSearch.length) {
          return {}
      }

      var query = {}
      locationSearch.substr(1).split('&').forEach(function(partStr) {
          var parts = partStr.split('=')
          var key = parts[0]
          var val = decodeURIComponent(parts[1])
          if (query.hasOwnProperty(key)) {
              var existingVal = query[key]
              if (existingVal instanceof Array) {
                  existingVal.push(val)
              } else {
                  query[key] = [existingVal, val]
              }
          } else {
              query[key] = val
          }
      })
      return query
  }

  function stringifyQuery(query) {
      if (!query) return ''

      return '?' + Object.keys(query).map(function(key) {
          var val = query[key]
          if (val instanceof Array) {
              return val.map(function(valPart) {
                  return [key, encodeURIComponent(valPart)].join('=')
              }).join('&')
          } else {
              return [key, encodeURIComponent(val)].join('=')
          }
      }).join('&')
  }