javascript: обновление на предварительно удаленном URL-адресе параметра приводит к сбою страницы - PullRequest
0 голосов
/ 26 октября 2018

Цель : пропустить параметр id с моей страницы и перезагрузить текущую страницу.

Исходный URL : www.onecompany.com/dept?id= 12345 & name = myName

Мне удалось получить измененный URL.

Измененный URL-адрес : www.onecompany.com/dept?name=myName

Я использовал этот код:

window.history.pushState(null, null, modifiedUrl);

И страница успешно загрузилась без параметра id.Но когда я обновляю страницу (я хочу перезагрузить текущую страницу), она не загружается

www.onecompany.com / dept? Id = 12345 & name = myName

но он загружает это

www.onecompany.com / dept? Name = myName

Когда я пытался

window.history.pushState(null, null, originalUrl);

Обновление работает, но одна часть моей цели не достигнута, не пропустите параметр id.

Я потерян в кругу.

Мой вопрос: это так?Можно ли загрузить мою страницу (без идентификатора параметра) И можно обновить страницу (чтобы загрузить правильную страницу без идентификатора параметра)?

Спасибо за любой совет!

1 Ответ

0 голосов
/ 26 октября 2018

Полагаю, вы пытаетесь скрыть информацию 'id' для пользователя. Я бы порекомендовал использовать куки для сохранения информации 'id'.

В противном случае:

//Example: 'www.onecompany.com/dept?id=12345&name=myName'

var query = window.location.search;
var oldquery = window.location.search;
query = query.replace(/id=\d+&?/i, '');
console.log(query);
//Out: ?name=myName

window.history.pushState(null, null, query); //then hide the id

Вам необходимо изменить исходный URL-адрес, прежде чем пользователь покинет веб-сайт.Это не сработает.

Но если вы захотите это сделать, вы можете прослушать событие window.onbeforeunload и снова изменить запрос на oldquery.Смотрите здесь: Обрабатывайте событие обновления страницы с помощью javascript - Но между браузерами существует много различий в том, как они будут обрабатывать событие window.unbeforeunload.Они обычно не позволяют этого сделать.

...