Wenn ich einen Link haben, die history.pushState({}, "", link);
mit der Funktion geändert wird, wo mein link
zum Beispiel ist page.php?value=1&value2=2
Gibt es eine Möglichkeit, nur die value2
mit pushState()
Funktion zu ändern, anstatt den ganzen Link zu ändern?history.pushState() ändern Abfragewerte
Antwort
Wenn das, was Sie versuchen, die URL zu ändern, ohne das Hinzufügen einer zusätzlichen Eintrag der zu tun ist, History-Objekt, könnten Sie versuchen replaceState
.
history.replaceState({value: 1, value2: X}, "title", "page.php");
Nein, weil die Abfragezeichenfolge Teil der URL ist. Wenn Sie diese Werte nicht wirklich für die Zwecke des Servers übergeben müssen, können Sie sie in das Statusobjekt des Verlaufs selbst aufnehmen, und dann können Sie nur das Statusobjekt mit pushState()
ändern. Zum Beispiel:
history.pushState({value: 1, value2: 2}, "Title", 'page.php');
history.pushState({value: 1, value2: 'new value'}, "Title");
können Sie diese nützliche Funktion verwenden, um eine Abfrage-String-Parameter-Wert zu ändern:
function updateParam(url, param, value)
{
var re = new RegExp(param+"(.+?)(&|$)","g");
return url.replace(re, param+'='+value)
}
Die letzte Zeile sollte 'url.replace (re, param + '=' + Wert + '$ 2')', oder? Andernfalls verlieren Sie das Ampersand-Trennzeichen. – Ricky
- 1. Javascript history.pushState
- 2. history.pushstate nicht aktualisieren Titel
- 3. AdSense auf history.pushState aktiviert Seite
- 4. history.pushState löst keine 'popstate' Ereignis
- 5. Iterate über alle Abfragewerte in C#
- 6. history.pushState arbeitet nicht in der Steuerung
- 7. history.pushState Fehler, ich weiß nicht, warum
- 8. history.pushstate und HTTP POST Formular repost
- 9. history.pushState in Chrom machen Favicon Anfrage
- 10. history.pushstate schlägt Browser zurück und vorwärts
- 11. Refresh original url während history.pushState mit()
- 12. Wie Geschichteinträge gelöscht werden, die durch history.pushstate hinzugefügt wurden?
- 13. Javascript - "history.pushState" ersetzt reguläres "&" durch "&". Wie man es vermeidet?
- 14. Access VBA: Anzahl der Abfragewerte und Zielfelder sind nicht identisch
- 15. MYSQL Datetime-Abfragewerte auf dem bestimmten Datum erhalten
- 16. „Anzahl der Abfragewerte und Zielfelder ist nicht die gleiche“
- 17. Jasmine - Wie kann ich history.pushState und auch gefälschte Ereignisemission verhöhnen?
- 18. Kann history.pushState etwas anderes als eine xhr-Anfrage machen?
- 19. erfolgreich history.pushState() von Angular ohne Inifinite Digest aufrufen?
- 20. Titel von history.pushState ist nicht unterstützt, was ist eine gute Alternative?
- 21. Erste Laufzeitfehler ‚3346‘: Anzahl der Abfragewerte und Zielfelder sind nicht die gleichen
- 22. Wie können Abfragewerte im @GET-URI durch meine eigenen ersetzt werden?
- 23. Abfragewerte zu finden, die während des Zeitintervalls auftreten, wo die Zeit vom Vortag beginnen ist
- 24. Angezeigte URL in der Adresszeile ändern
- 25. Wie wird der Titel des Eintrags festgelegt, den der Browser für history.pushState anzeigt?
- 26. Wie fügt man ein Inhaltsskript in die Google Chrome-Erweiterung ein, wenn die Seite über history.pushState geändert wurde?
- 27. ändern
- 28. Ändern
- 29. ändern
- 30. History.pushState (Daten, Titel, URL) verkettet (anstatt sie zu ersetzen) url bar anzusprechen, wenn es ein Schrägstrich ist
Das scheint keine Antwort zu sein. Das Übergeben eines Objekts als erstes Argument an 'replaceState' wirkt sich nicht auf die Abfragewerte in der URL aus. Nur das letzte Argument wird: In diesem Beispiel wird die Abfrage vollständig entfernt. –
Das OP wollte einen Wert im aktuellen Verlaufszustand aktualisieren (anstatt einen neuen zu erstellen). Obwohl Sie mit pushState kein Zustandsobjekt ändern können, ist dies der Zweck von replaceState. – devstruck