10 Stimmen

Javascript ändert den GET-Parameter, ohne weiterzuleiten

Wie kann ich einfach den GET-Parameter ändern, ohne umzuleiten?

parent.location.search = "?after=20"; 
// ok das ändert sich, aber leitet auch zur neuen Seite um

Irgendwelche Lösungen? Oder ist die Antwort nein, wenn es nein ist, dann schreibe bitte großes Nein.

11voto

Peter Bailey Punkte 103278

Aktualisierung

Da dies die akzeptierte Antwort ist und nicht mehr wahr ist, verweisen Sie auf diese Duplikatfrage für aktuelle Informationen.

Die ursprüngliche Antwort folgt:


NEIN

Sie können mit dem Ankeranteil der URL, der über die hash-Eigenschaft des location-Objekts zugänglich ist, nah dran kommen

parent.location.hash = "beliebiger Wert, den Sie möchten";

6voto

Ates Goral Punkte 132294

Wenn Ihr Ziel darin besteht, den Abfrage-String zu verwenden, um einen Zustand zu speichern, der später über ein Lesezeichen wiederhergestellt werden kann, sollten Sie stattdessen Anker verwenden.

Wenn Sie jedoch aus irgendeinem Grund den Abfrage-String ändern müssen, gibt es tatsächlich einen Weg. Ich befürworte dies jedoch nicht. Ich erwähne es nur der Vollständigkeit halber.

Wenn ein Server eine 204 No Content-Antwort zurückgibt, werden die meisten Browser nichts unternehmen - d.h. sie werden nicht einmal versuchen, zu einer anderen Seite zu wechseln oder die aktuelle Seite zu löschen. Was Sie tun können, ist, dass das Backend einfach eine 204-Antwort ausgibt, wenn eine Anfrage an die gleiche Seite gestellt wird, die gerade bedient wurde, mit einer Änderung der Abfrageparameter.

4voto

roberkules Punkte 6459

Bis jetzt lautet die Antwort JA

Zumindest in HTML5, was bedeutet, dass alle gängigen Browser (IE10+)
Unterstützt Internet Explorer pushState und replaceState?
http://caniuse.com/#feat=history

Sie können auch meine Antwort auf einer anderen SO-Frage überprüfen:
Wie kann ich die Seiten-URL ändern, ohne die Seite zu aktualisieren?

1voto

user97410 Punkte 726

Oh nein - wenn Sie den URL-Parameter ändern, lädt Ihr Browser die neue Seite.

1voto

Asaph Punkte 153684

Sie können die Abfragezeichenfolge (d. h. den Teil, der mit dem ? beginnt) nicht ändern, ohne die Seite vom Server neu zu laden. Sie können jedoch Seitenanker wie http://www.example.com/page.html#anchorname verwenden, um die URL zu beeinflussen, ohne eine Seite vom Server neu zu laden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X