Change URL parameters

前端 未结 26 2592
孤独总比滥情好
孤独总比滥情好 2020-11-22 08:40

I have this URL:

site.fwx?position=1&archiveid=5000&columns=5&rows=20&sorting=ModifiedTimeAsc

what I need is to be able to

26条回答
  •  傲寒
    傲寒 (楼主)
    2020-11-22 09:15

    Here I have taken Adil Malik's answer and fixed the 3 issues I identified with it.

    /**
     * Adds or updates a URL parameter.
     *
     * @param {string} url  the URL to modify
     * @param {string} param  the name of the parameter
     * @param {string} paramVal  the new value for the parameter
     * @return {string}  the updated URL
     */
    self.setParameter = function (url, param, paramVal){
      // http://stackoverflow.com/a/10997390/2391566
      var parts = url.split('?');
      var baseUrl = parts[0];
      var oldQueryString = parts[1];
      var newParameters = [];
      if (oldQueryString) {
        var oldParameters = oldQueryString.split('&');
        for (var i = 0; i < oldParameters.length; i++) {
          if(oldParameters[i].split('=')[0] != param) {
            newParameters.push(oldParameters[i]);
          }
        }
      }
      if (paramVal !== '' && paramVal !== null && typeof paramVal !== 'undefined') {
        newParameters.push(param + '=' + encodeURI(paramVal));
      }
      if (newParameters.length > 0) {
        return baseUrl + '?' + newParameters.join('&');
      } else {
        return baseUrl;
      }
    }
    

提交回复
热议问题