Ich habe zahlreiche Antworten darauf gefunden, wie man die URL ohne die Parameter extrahiert.
Wie schreiben Sie die URL in der Adresszeile um, ohne dass die Seite mit der neuen URL neu geladen wird?
%Vor%Das Ziel besteht darin, die Parameter in Javascript zu extrahieren, sie aber nicht in der Adressleiste anzuzeigen.
In modernen Browsern mit Unterstützung für das History-Objekt können Sie entweder history.replaceState()
oder history.pushState()
verwenden, um die aktuelle URL zu ändern, ohne die aktuelle Seite zu ändern. Es gibt Einschränkungen hinsichtlich der Möglichkeiten, die Sie ändern können (z. B. können Sie die Domäne / den Ursprung aus Sicherheitsgründen nicht auf diese Weise ändern).
Siehe hier für eine Zusammenfassung dieser Methoden.
Der Browserverlauf ist eine Aufzeichnung dessen, wo Sie sich in Ihrer Browsersitzung befanden. Mit .replaceState()
können Sie das aktuelle Element in der Verlaufsliste durch ein anderes ersetzen. .pushState()
fügt dem Browserverlauf ein neues Element hinzu und beide ändern die in der Browser-URL-Leiste angezeigte URL, ohne die Seite neu zu laden. Sie wählen die zu verwendende Methode aus, je nachdem, wie die Schaltfläche "Zurück" des Browsers für diesen bestimmten Seiteneintrag verwendet werden soll.
Hinweis: Diese APIs werden in IE 10 und höher unterstützt.
In älteren Browserversionen ohne Unterstützung für die Verlaufs-API kann der einzige Teil der URL, den Sie ohne erneutes Laden der Seite ändern können, das Hash-Tag (der Teil nach einem #
-Zeichen) am Ende der URL sein.
In html5 ist das Umschreiben von URL ohne Neuladen der Seite möglich (Sie können den Domain-Namen aus Sicherheitsgründen immer noch nicht ändern). Mit history api können Sie schreiben:
%Vor% in dem die ersten beiden Parameter irgendwie willkürlich sind, und der dritte Parameter ist die neue URL (ohne Domänennamen). Wenn Sie den Zurück-Button aktivieren möchten, um zur vorherigen URL zurückzukehren, verwenden Sie pushState
anstelle von replaceState
oben. Lesen Sie mehr über diese Funktionen in diesem Blogpost .
In Bezug auf die Browser-Unterstützung wird es in den letzten Versionen von Firefox und Chrome unterstützt, aber nur in IE10 +, was noch nicht sehr verbreitet ist. Für Details siehe Kompatibilitätsmatrix oder .
Sie können den Wert in der Adressleiste nicht ändern, ohne umgeleitet zu werden. Das wäre der Traum eines Phishing-Betrachters!
Sie können jedoch die Fragment-ID ändern: (in JavaScript der window.location.hash
-Wert)
Wenn Sie jedoch die Abfragezeichenfolge ändern, wird die Seite umgeleitet.
Sie können möglicherweise den neuen Pushstate verwenden, der Teil der HTML 5-Verlaufs-API ist, mit der Sie die URL ändern können, ohne den Browser neu zu laden.
Ссылка für ein schnelles Beispiel und < a href="http://diveintohtml5.info/history.html"> Ссылка für ausführlichere Beispiele und Einschränkungen:
Ich denke nicht, dass es dafür eine Möglichkeit gibt. Ich meine, Sie könnten die URL nach dem Laden neu schreiben und return false hinzufügen, damit Sie das Reload verhindern, aber sonst müssten Sie ein Formular POST auf der URL machen um zu erreichen, dass kein Parameter angezeigt wird.
Tags und Links javascript url parameters url-rewriting address-bar