Добавление параметра URL в JS без изменения страницы - PullRequest
0 голосов
/ 12 сентября 2018

Привет, недавно мне пришлось программно добавить параметр URL в java-скрипте. Требования состояли в том, что параметр должен измениться, но страница не должна обновляться. Это было сделано, чтобы помочь сохранить состояние браузера, если пользователь обновит страницу.

Я думал, что поделюсь своим решением, если кто-то еще будет иметь эту проблему в будущем.

1 Ответ

0 голосов
/ 12 сентября 2018

Я использовал объекты истории replaceState (), чтобы заменить часть местоположения urlParameter.Эта функция доступна в большинстве новых браузеров.

/**
* Add url parameters to your current location without changing page
* @param { object } urlParams, a hash containing key value pairs
*/
function addUrlParams(urlParams){
  var oldState = history.state;
  var oldTitle= document.title;
  var oldParams= `${window.location.hash}${location.search}`; // Keep the old params      
  var newParams='';
  var paramKeys = Object.keys(urlParams);
  var paramValues = Object.values(urlParams)

  for(var i=0;i < paramKeys.length;i++){
    newParams += `&${paramKeys[i]}=${paramValues[i]}`; // Add each param from the hash
  }
  history.replaceState(oldState,oldTitle,oldParams+newParams)
}

Надеюсь, вы найдете ее полезной.

...