Здравствуйте. Возможно ли сохранить GET при перезагрузке страницы после изменения истории:
history.replaceState(null, '', location.pathname);
dp/aaa/bbb?A=1
адрес без get выглядит лаконичней dp/aaa/bbb
, но после перезагрузки как и должно быть get запроса нет. Возможно ли эти параметры сохранить?
Как вариант можно сохранить это в cookie Получите ваши параметры с помощью location.search:
window.location.search
запишите их в куки
document.cookie = "name=Vasya";
а при загрузке страницы получение куки
function getCookie(name) {
var matches = document.cookie.match(new RegExp(
"(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=
([^;]*)"
)); return matches ? decodeURIComponent(matches[1]) : undefined;}
Так Вы сможете сохранить эти параметры запроса внутри браузера, но сами данные не сохранятся. Как вариант, можно использовать вместо cookie использовать localStorage
Решил задачу так:
/**
* GETRequest - сохраненный get запрос
* GETPath - страница которой принадлежит сохраненный get
*/
(function () {
// если нет get запроса и какой-то запрос сохранен
if(window.sessionStorage.GETRequest && window.location.search==""){
// если юзер обновил страницу а не перешел на другую
if(window.location.pathname == window.sessionStorage.GETPath){
var GETRequest = window.sessionStorage.GETRequest;
window.sessionStorage.clear();
window.location.assign(window.location.pathname+GETRequest);
}else{
window.sessionStorage.clear();
}
}
}());
//если передан определенный запрос с необходимым параметром
<?if($param['val']==(int)1):?>
<script>
// записываются параметры запроса и страница
window.sessionStorage.setItem('GETRequest', window.location.search);
window.sessionStorage.setItem('GETPath', window.location.pathname);
// убирает запрос и адресной строки
window.history.replaceState(null, null, window.location.pathname);
</script>
<?else:?> // если запрос не валидный
<script>
window.sessionStorage.clear();
window.history.replaceState(null, null, window.location.pathname);
</script>
<?endif;?>
Правда есть ощущение что window.location.assign(window.location.pathname+GETRequest);
можно сделать лаконичней без перезагрузки страницы.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть несколько полей такого типа <input type="file" name="file1">в которых я выбираю изображенияМне нужно с помощью ajax залить их на imgur, а ссылку вернуть...
Мне нужно выбрать все элементы a обернуть кадлый из них в li и добавить в ul с id="menu"
Добрый день коллеги, Прошу вас помочь победить злополучный слайдер
Есть форма с данными, которая автоматически при нажатии кнопки submit отправляется на сайт robokassa (в action у формы стоит ссылка на страницу оплаты)Как...