HTML5: Aktualisiert die Seite, wenn popstate ausgelöst wird

8

Ich habe ein Ajax-Suchformular wie:

url: / search /

= & gt; Der Benutzer gibt einen Suchbegriff ein und klickt auf eine Schaltfläche

= & gt; Suche ist fertig und zeigt die Ergebnisse über Ajax in einem Div auf der Seite

Aber ich möchte auch, dass der Benutzer die URL kopieren und einfügen kann und durch die vorherigen Suchen navigieren kann. Beim Auslösen der Suche ändere ich die URL in der Adressleiste des Browsers von

/ suche /

bis

/ search /? q = Ihr Schlüsselwort

mit:

%Vor%

Dies ändert die URL in der Adressleiste des Browsers nach / search /? q = yourkeywords und funktioniert gut.

Jetzt, indem du den Zurück-Knopf drückst, zeigt die Browser-Adressleiste wieder / search / an, was in Ordnung ist. Aber der Seiteninhalt wird nicht neu geladen, er zeigt immer noch die Ergebnisse von / search /? Q = yourkeyword.

Also habe ich hinzugefügt:

%Vor%

Ist das der richtige Weg? Es funktioniert gut in Desktop-Browsern wie FF und Chrome, aber zum Beispiel in iOS wird das Popstate-Ereignis beim ersten Laden des Suchformulars auf / search / ausgelöst, was zu einem nie endenden Neuladen dieser Seite führt.

Was ist der richtige Weg?

    
Werner 19.02.2015, 08:46
quelle

2 Antworten

4

Die einfachste Lösung besteht darin, eine globale Variable festzulegen, wenn Sie pushState verwenden. Überprüfen Sie dann in Ihrem onpopstate-Handler, ob das gesetzt ist. Zum Beispiel:

%Vor%     
troelskn 19.06.2015 20:35
quelle
1

Mein Vorschlag:

%Vor%

Ich habe es nicht getestet, aber ich denke, es wird tun, was Sie wollen.

    
Dan Goodspeed 19.02.2015 08:54
quelle

Tags und Links