Подтвердить что ты не робот

Как обновить страницу нажатием кнопки "Назад"?

Я использую .htaccess для маршрутизации всего моего трафика в один файл index.php. Код ниже направляет трафик, но по какой-то причине он не работает с кнопкой "Назад". Я не знаю, что делать, чтобы заставить кнопку "вернуться" работать. Я пробовал разные вещи и искал многого, и ни один из них не работал, поэтому я надеюсь, что кто-то здесь может помочь!

<?php
   if(isset($_GET['parameters'])) {
      if($_GET['parameters'] == "repair")
         include 'repair.html';
      else if($_GET['parameters'] == "training")
         include 'training.html';
      else if($_GET['parameters'] == "products")
         include 'products.html';
      else if($_GET['parameters'] == "about")
         include 'about.html';
      else if($_GET['parameters'] == "employees")
         include 'employees.html';
      else if($_GET['parameters'] == "training")
         include 'training.html';
      else if($_GET['parameters'] == "newaccount")
         include 'newaccount.html';
      else if($_GET['parameters'] == "contact")
         include 'contact.html';
      else if($_GET['parameters'] == "recommended")
         include 'recommended.html';
      else if($_GET['parameters'] == "careers")
         include 'careers.html';
      else
         include 'home.html';
   }
   else
      include 'home.html';
?>

До сих пор я пробовал и не использовал: window.onbeforeunload body onunload=""

Должен быть способ onunload=location.reload() или что-то в этом роде! Почему-то нужно знать синтаксис!!

4b9b3361

Ответ 1

Попробуйте это... не проверено. Надеюсь, это сработает для вас.

Создайте новый php файл. Вы можете использовать кнопки "Назад" и "Вперед", а число/метка времени на странице всегда обновляется.

<?php
header("Cache-Control: no-store, must-revalidate, max-age=0");
header("Pragma: no-cache");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
echo time();
?>
<a href="http://google.com">aaaaaaaaaaaaa</a>

Или

найдено другое решение

Событие onload должно быть запущено, когда пользователь нажимает кнопку "Назад". Элементы, не созданные с помощью JavaScript, сохраняют свои значения. Я предлагаю сохранить резервную копию данных, используемых в динамически создаваемом элементе, в INPUT TYPE = "hidden", который будет отображаться: no then onload, используя значение ввода для перестройки динамических элементов так, как они были.

<input type="hidden" id="refreshed" value="no">
<script type="text/javascript">
onload=function(){
var e=document.getElementById("refreshed");
if(e.value=="no")e.value="yes";
else{e.value="no";location.reload();}
}

Ответ 2

В более позднем решении используется интерфейс PerformanceNavigation:

if(!!window.performance && window.performance.navigation.type === 2)
{
    console.log('Reloading');
    window.location.reload();
}

Если значение 2 означает "Доступ к странице осуществляется путем навигации по истории".

Просмотреть поддержку браузера здесь: http://caniuse.com/#search=Navigation%20Timing%20API

Перезагрузите сайт, когда он достигнут с помощью кнопки браузера назад

Ответ 3

Скрытое входное решение не работало для меня в Safari. Нижеприведенное решение работает и вышло из здесь.

window.onpageshow = function(event) {
if (event.persisted) {
    window.location.reload() 
}
};

Ответ 4

Я нашел два способа справиться с этим. Выберите лучшее для своего дела. Решения, протестированные на Firefox 53 и Safari 10.1

1. Обнаруживать, если пользователь использует кнопку назад/вперед, а затем перезагрузить целую страницу

if (!!window.performance && window.performance.navigation.type === 2) {
            // value 2 means "The page was accessed by navigating into the history"
            console.log('Reloading');
            window.location.reload(); // reload whole page

        }

2. перезагружать всю страницу, если страница кэширована

window.onpageshow = function (event) {
        if (event.persisted) {
            window.location.reload();
        }
    };

Ответ 5

Это простое решение, размещенное здесь принудительно обновить страницу на обратной кнопке...

Я попытался заставить страницу снова загружаться браузером, когда пользователь нажимает кнопку "Назад" , но ничего не работает. Похоже, что у современных браузеров есть отдельный кэш для страниц, в котором хранится полное состояние страницы (включая элементы DOM, созданные с помощью JavaScript), поэтому, когда пользователи нажимают кнопку "Назад" , предыдущая страница отображается мгновенно в том состоянии, когда пользователь ее покинул. Если вы хотите заставить браузер перезагружать страницу по кнопке "Назад" , добавьте onunload = "" к вашему элементу тела HTML (X):

<body onunload="">

Это отключает специальный кеш и принудительно перезагружает страницу при нажатии пользователем Кнопка назад. Подумайте дважды, прежде чем использовать его. Факт необходимости такой решение - это намек на то, что ваша концепция навигации сайта ошибочна.

Ответ 6

Вы попробовали что-то вроде этого? не проверено...

$(document).ready(function(){
    $('.ajaxAnchor').on('click', function (event){ 
        event.preventDefault(); 
        var url = $(this).attr('href');
        $.get(url, function(data) {
            $('section.center').html(data);
            var shortened = url.substring(0,url.length - 5);
            window.location.hash = shortened;
        });
    });
});

Ответ 7

Прежде всего, вставьте код в свой код:

<input id="reloadValue" type="hidden" name="reloadValue" value="" />

затем запустите jQuery:

<script type="text/javascript">
   jQuery(document).ready(function()
    {
            var d = new Date();
            d = d.getTime();
            if (jQuery('#reloadValue').val().length === 0)
            {
                    jQuery('#reloadValue').val(d);
                    jQuery('body').show();
            }
            else
            {
                    jQuery('#reloadValue').val('');
                    location.reload();
            }
    });

Ответ 8

Чтобы обновить страницу, нажав кнопку "Назад", можно использовать следующее:

window.addEventListener('popstate', () => {
  location.reload();
}, false);

Ответ 9

window.onbeforeunload = function() {redirect (window.history.back(1)); };

Ответ 10

Это сработало для меня. Просто добавьте этот код внизу страницы. Надеюсь, это поможет.

window.addEventListener("pageshow", function(event) {
  var historyTraversal = event.persisted || (typeof window.performance !=
    "undefined" && window.performance.navigation.type === 2);
  if (historyTraversal) {
    // Handle page restore. 
    window.location.reload();
  }
});

Я выполнил эту задачу с помощью описанного выше трюка. Я добавил прослушиватель событий, который вызывается, когда кто-то возвращается на страницу с помощью кнопки "Назад" в браузере и на этом событии просто перезагружает страницу. Надеюсь, это поможет.

Ответ 11

Ahem u_u

Как я уже сказал, кнопка возврата для каждого из нас - боль в каком-то месте... это говорит...

Пока вы загружаете страницу, это вызывает много проблем... для стандартного "сайта" это не изменится так сильно... однако я думаю, что вы можете сделать что-то вроде этого

Пользователь каждый раз обращается к вашей странице .php, которая выбирает, что загрузить. Вы можете немного поработать с кешем (чтобы не кэшировать страницу) и, возможно, срок действия.

Но для долгосрочного решения будет добавлен код в событии onload, чтобы получить данные Ajax, таким образом вы можете (с Javascript) запустить нужный код и пример обновить страницу.