Wie mache ich den Firefox die Seite neu laden, wenn die zurück-Taste gedrückt wird?
Ich habe versucht, jede Kombination und permutation von meta-tags, die sollen aufhören, eine Seite zwischengespeichert werden, aber Firefox immer NOCH caches die Seite! Muss ich nur die URL neu zu laden, wenn ein Benutzer die zurück-Taste drückt. Funktioniert einwandfrei im IE8.
Ich habe versucht, alle diese...
<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" />
...und ich habe auch versucht, den folgenden 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>
... alles ohne Erfolg. Was vermisse ich hier? Seiten erstellt mit PHP, wenn, was zählt.
UPDATE 1:
Ich habe versucht, jeden Vorschlag so weit, aber ich kann immer noch nicht diese zu arbeiten. Wenn ich mit Chris in der PHP-code, den ich verwenden Sie es wie diese...
<?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-->
.. und wie du sehen kannst, ist es an der EXTREMEN Spitze von meiner Webseite, vor der DOCTYPE
header.
Habe ich experimentierte auch mit session_start()
aber selbst nach Lesen der Bedienungsanleitung bin ich nicht sicher, ob ich es mit Recht. Ich legte es direkt an der Spitze meiner Seite.
Ich bin offen für ANREGUNGEN, die diese Arbeit machen, ohne zu brechen anderen Seite Funktionalität. Ich weiß, ich habe gesehen, dass Seiten reload JEDES MAL, wenn Sie die zurück-Taste wird verwendet, WIE TUN SIE ES?!
GELÖST!
Stellt sich heraus, ich hatte mehrere Probleme, die gegen mich, aber durch due-diligence-ich war in der Lage, diejenigen zu beseitigen, Fragen und siegreich.
Nachdem Chris aktualisiert seinen code zu...
<?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>
Fand ich, dass sein code hat tatsächlich funktioniert wenn ich es benutzt habe, wie GENAU hatte er es mit NICHTS anderem, aber wenn ich es in meinen Seiten, es hat nicht funktioniert. Alle meine Seiten sind entweder .php
oder .html
und alle sind mit einem DWT (Dynamische Web-Vorlage), so war ich die Aktualisierung alle von Ihnen auf einmal mit Chris ' code. Was ich nicht wusste war, dass die DWT beginnt DIREKT NACH der DOCTYPE
header, sodass der code wurde nie eingefügt in meine Seiten. Ich konnte keinen Weg findet, um die DWT gehören die DOCTYPE
- header, so ging ich in alle meine Seiten und manuell eingefügt, der code oben die DOCTYPE
header.
Weiter habe ich festgestellt, dass obwohl mein server ist festgelegt, zu analysieren .htm
und .html
als .php
die .html
Seiten generieren ein Fehler am sehr wo hatte ich eingefügt, Chris ' code sagt etwas zum Effekt von "kann nicht zum modifizieren von Header, Header bereits gesendet wurden". Ich wusste nicht wirklich, was meine extensions waren so ich habe gerade alle meine .html
Erweiterungen .php
extensions.
Eine Letzte kleine ärgernis war, dass, obwohl die Seite war jetzt nicht zwischengespeichert (wie ich wollte) Firefox war die Platzierung der Benutzer an deren Letzte Lage auf die Vorherige Seite, wenn Sie die zurück-Taste (D. H., wenn ein Benutzer unten auf der Seite ein, wenn Sie aufgerufen Seite b ist, dann verwendet der Benutzer die zurück-Taste auf der Seite b, Sie würden zurückgegeben werden, die unten auf der Seite ein, nicht der Anfang der Seite wie gewünscht). Trimmen nach unten meine ursprüngliche JavaScript behoben...
<script type="text/javascript">
onload=function(){
document.getElementById('content').scrollTop=0;
}
</script>
Obwohl dies scheint sehr engagiert für so ein einfaches problem, ich bin froh, dass es behoben wird. Vielen Dank für Ihre Hilfe-allen (vor allem Chris).
- Sollte es nicht Lesen <input type="hidden" id="aktualisieren" value="ja"/> ?
- Ich denke nicht so, aber ich habe versucht, es in beide Richtungen, um sicherzustellen, dass... kein Glück.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies funktioniert für mich
machen Sie eine neue php-Datei. Ich kann verwenden Sie die Schaltflächen zurück und vorwärts, und die Anzahl auf der Seite immer aktualisiert
<head>
tag, direkt nach der<html>
tag, direkt vor der<html> tag, and at the very top of the page, before the
DOC TYPE`, keiner von denen gearbeitet haben.DOCTYPE
,<html>
usw.) es funktioniert gut, aber wenn ich es in meinem ganzen Seite funktioniert es nicht. Ich werde Schlamassel mit etwas mehr und nach einem update bald.Können Sie fügen Sie den folgenden PHP-Code in Ihre PHP-Seite.
PHP-version:
Sein und auch Sie können fügen Sie die folgende Java-Script-Code in der Login - /Master-Seite
<head>
Abschnitt:Kompatibilität überprüft
Schauen Sie sich live-http-Header, sehen Sie, wenn Sie die zurück-Taste drücken, wird kein Antrag gestellt wird. Das ist mit Absicht getan, so dass Sie nicht verlieren, was können Sie in Formulare eingegeben haben.
Bearbeiten
Einige post auf Experten-Austausch sagte, dies funktionierte, aber seine aus dem Jahr 2006.
Dann ein javascript-refresh
Ich denke, der richtige Wert "no-cache"
Sollte automatisch generieren alle erforderlichen Header. Beachten Sie, dass einige Browser, wie Opera, noch ignorieren Sie diese, wenn Sie über die Schaltfläche zurück.
BEARBEITEN
Den entsprechenden Header sind wie folgt, falls Sie möchten, erzeugen Sie einen anderen Weg:
Warum?
Ich meine, warum wollen Sie dies tun?
Wenn ich drücken Sie die zurück-Schaltfläche, möchte ich die standard-Funktion, die die browser - gehen Sie zur vorherigen Seite zurück. Ich will keine überraschung.
Wenn es zu stoppen eine zufällige Wiedergabe von einem POST, das kann sehr einfach realisiert werden, indem die Beendigung der POST Umgang mit einer Weiterleitung zu display die gewünschte Antwort unter Verwendung eines BEKOMMEN. Später zurück in diese Seite, wird wieder die Weiterleitung BEKOMMEN (oder laden Sie es aus dem cache, die müssen das gleiche Ergebnis haben). Dies ist, was der Benutzer erwartet und ist harmlos.
Dies hat den zusätzlichen Vorteil, dass, wenn Ihr speichern fehlgeschlagen bei der Aktualisierung der Datenbank, die Anzeige wird anzeigen, welche auf die Datenbank, nicht das, was zurückgelassen wurde, in die Variablen.
Du einen Kommentar gepostet:
Wenn Sie dies verhindern möchten, tun Sie es falsch! 🙂
Was Sie tun müssen, ist eine Umleitung erfolgt, wenn das Formular abgesendet wurde.