Как мне заставить Firefox перезагружать страницу при нажатии кнопки «Назад»?

Я пробовал все комбинации и перестановки метатегов, которые должны препятствовать кэшированию страницы, но Firefox ВСЕ ЕЩЕ кеширует страницу! Мне просто нужен URL-адрес для перезагрузки, когда пользователь нажимает кнопку «Назад». Прекрасно работает в IE8.

Я пробовал все это ...

<meta http-equiv="Cache-Control" content="no-store" />
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Expires" content="-1"/>
<meta http-equiv="Expires" content="Sat, 1 Jan 2000 00:00:00 GMT" /> 

... а еще я пробовал следующий JavaScript ...

<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();
        }

    }

</script> 

... все безрезультатно. Что мне здесь не хватает? Страницы создаются с помощью PHP, если это важно.

ОБНОВЛЕНИЕ 1:

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

<?php
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
<!--the rest of my page-->

.. и, как вы можете видеть, он находится в ЭКСТРЕМАЛЬНОЙ верхней части моей веб-страницы, перед заголовком DOCTYPE .

Я также экспериментировал с session_start () , но даже после прочтения руководства я не уверен, что использую его правильно. Я тоже помещал это прямо в самом верху моей страницы.

Я открыт для ЛЮБЫХ ПРЕДЛОЖЕНИЙ, которые позволят этой работе работать без нарушения других функций страницы. Я знаю, что видел страницы, которые перезагружались КАЖДЫЙ РАЗ при нажатии кнопки «Назад». КАК ОНИ ЭТО ДЕЛАЮТ ?!

РЕШЕНО!

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

После того, как Крис обновил свой код до ...

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

Я обнаружил, что его код действительно работал, когда я использовал его ТОЧНО, как он, ни с чем другим, но когда я поместил его на свои страницы, он не работал. Все мои страницы имеют формат .php или .html , и все они прикреплены к DWT (динамическому веб-шаблону), поэтому я обновлял их все сразу с помощью кода Криса. Чего я не понимал, так это того, что DWT запускается СРАЗУ ПОСЛЕ заголовка DOCTYPE , поэтому код никогда не вставлялся на мои страницы. Мне не удалось найти способ включить в DWT заголовок DOCTYPE , поэтому я просмотрел все свои страницы и вручную вставил код над заголовком DOCTYPE .

Затем я обнаружил, что, хотя мой сервер настроен на синтаксический анализ .htm и .html как .php , .html страницы генерировали ошибку в том самом месте, где я вставил код Криса, говоря что-то вроде «не может изменять заголовки, заголовки уже отправлены». Мне было все равно, какие у меня расширения, поэтому я просто заменил все мои .html расширения на .php расширения.

Последним незначительным раздражением было то, что, хотя страница теперь не кэшировалась (как я и хотел), Firefox помещал пользователя в последнее место на предыдущей странице, когда они использовали кнопку «Назад» (т.е. если пользователь находился в внизу страницы a, когда они перешли на страницу b, затем пользователь использовал кнопку «Назад» на странице b, они будут возвращены в конец страницы a, а не вверх страницы a, как хотелось бы). Урезание моего исходного JavaScript исправило это ...

    <script type="text/javascript">

        onload=function(){
            document.getElementById('content').scrollTop=0;
        }

    </script>

Несмотря на то, что это кажется очень сложным для такой простой проблемы, я рад, что она исправлена. Спасибо за вашу помощь всем (особенно Крису).

9
задан ubiquibacon 8 January 2011 в 20:52
поделиться