Как принудительно обновлять страницу в браузере?
Есть ли совместимый с кросс-браузером способ принудительного обновления страницы при нажатии кнопки назад на навигаторе?
Я пытаюсь получить доступ к действительным кукисам:
У меня есть функция jc setcookie, которая записывает изменения в селекторе типов
$( "#type-select" ).change(function() {
var type = $("#type-select").val();
SetCookie("liste-voyage-type",type);
});
Я хотел бы получить это значение при возврате на этой странице, нажав кнопку "Назад" браузера, используя php
if (isset($_COOKIE["liste-voyage-type"]))
$type=$_COOKIE["liste-voyage-type"];
Ответы
Ответ 1
У меня было аналогичное требование в моем проекте. Вы можете сделать что-то вроде этого:
Например, скажем, есть две страницы: page1 и page2
В Page1 выполните следующие действия:
<script>
if (sessionStorage.getItem("Page2Visited")) {
sessionStorage.removeItem("Page2Visited");
window.location.reload(true); // force refresh page1
}
</script>
И в странице2:
<script>
sessionStorage.setItem("Page2Visited", "True");
</script>
Теперь он будет принудительно обновлять страницу на странице1, всякий раз, когда вы нажимаете кнопку "Назад" со страницы 2.
Ответ 2
Я сделал это несколько иначе с помощью файлов cookie
function SetCookie (name, value) {
var argv=SetCookie.arguments;
var argc=SetCookie.arguments.length;
var expires=(argc > 2) ? argv[2] : null;
var path=(argc > 3) ? argv[3] : null;
var domain=(argc > 4) ? argv[4] : null;
var secure=(argc > 5) ? argv[5] : false;
document.cookie=name+"="+escape(value)+
((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
((path==null) ? "" : ("; path="+path))+
((domain==null) ? "" : ("; domain="+domain))+
((secure==true) ? "; secure" : "");
}
function getCookie(c_name)
{
var c_value = document.cookie;
var c_start = c_value.indexOf(" " + c_name + "=");
if (c_start == -1)
{
c_start = c_value.indexOf(c_name + "=");
}
if (c_start == -1)
{
c_value = null;
}
else
{
c_start = c_value.indexOf("=", c_start) + 1;
var c_end = c_value.indexOf(";", c_start);
if (c_end == -1)
{
c_end = c_value.length;
}
c_value = unescape(c_value.substring(c_start,c_end));
}
return c_value;
}
if (getCookie('first_load'))
{
if (getCookie('first_load')==true)
{
window.location.reload(true); // force refresh page-liste
SetCookie("first_load",false);
}
}
SetCookie("first_load",true);