2017-03-06 2 views
0

Ich habe eine Website und wenn ein Benutzer einem internen Link folgt, möchte ich einige zusätzliche Informationen an eine neue Seite weitergeben, damit JavaScript auf der Zielseite einige nützliche Hervorhebungen machen kann.JavaScript: Wie übertrage ich zusätzliche Informationen zur Quellseite?

Es gibt eine Option, um diese Informationen über die Link-Parameter (GET) zu übergeben, aber es wird viele praktisch doppelte Seiten generieren und hübsche URL-Konzept zu brechen. Eine andere Möglichkeit besteht darin, eine Webanwendung mit AJAX zu erstellen, aber es bindet auch Inhalte an eine einzelne URL.

Wie kann ich während der Navigation einige Informationen transparent an die neue Seite übergeben, ohne die URL-Struktur der Site zu verwenden?

+0

POST-Anfrage ... aber wenn der Benutzer jemals wieder auf diese Seite geht (über get Anfrage mit Lesezeichen URL), wird es nicht die Daten haben ... – epascarello

+0

Sind beide Seiten auf der gleichen Domain? – guest271314

+0

@epascarello Das ist OK. Der Punkt ist, dass die Daten vorübergehend sind. Es besteht keine Notwendigkeit, zwischen den Besuchen zu bestehen. –

Antwort

1

Sie haben also ein paar Optionen.

Formular Submission

Erste Option Post ein Formular mit den Daten. Fügen Sie ein ausgeblendetes Formular hinzu, erfassen Sie das Klickereignis auf dem Anker, legen Sie die ausgeblendeten Felder mit den Werten fest, die Sie an die nächste Seite senden möchten, und senden Sie das Formular ab. Lesen Sie auf der nächsten Seite die Post-Parameter im Backend und aktualisieren Sie die Seite.

Local Storage

Bei Klick auf den Anker gesetzt localstorage auf die Werte, die Sie auf der nächsten Seite angezeigt werden soll. Wenn die nächste Seite geladen wird, lesen Sie die localStorage-Werte und aktualisieren Sie die Seite. Hinweis: Der Server wird nicht haben Zugriff auf die Werte

Ajax mit pushstate

Verwenden Ajax das Formular abzuschicken. Wenn der Ajax-Aufruf zurückgegeben wird, verwenden Sie window.history.pushState, um die URL mit der URL zu aktualisieren, die dem Benutzer angezeigt werden soll.

+0

Das ist definitiv alle Optionen, die ich bisher erkundet habe. Für die Zeit ** SessionStorage ** ausgewählt. –

-1

Was meinst du damit "Inhalte an eine einzelne URL binden"? AJAX-Anfrage ist das erste, was mir in den Sinn kommt als die Lösung für dieses Problem. Sie müssen nicht die URL der Seite verwenden, um die Ajax-Anfrage zu machen, können Sie die URL in Ihrem Javascript basierend auf den Bedingungen in Ihrer Anwendung bestehen.

Neben AJAX und Weitergabe von Parametern in der URL, die einzige andere Sache, die ich denken kann, ist die Verwendung von Cookies. Das führt natürlich zu Problemen, wenn der Benutzer Cookies deaktiviert hat. Ich denke, ein Ajax-Aufruf an Ihren Server ist der robusteste Weg, um das Problem zu lösen.

3

Sie können die Daten im lokalen Speicher oder im Sitzungsspeicher speichern und auf der Zielseite erneut abrufen.

0

Eine der Optionen nicht erwähnt wird, ist eine schmutzig URL zu erstellen:

/Ziel/param1/Wert1/...

dann zusätzliche Parameter Streifen an serverseitig und Umleitung:

/des

zusätzliche Werte gespeichert auf Serverseite speichern (z.über Sitzungen). Ich bevorzuge immer noch sessionStorage in einer realen Anwendung, aber es ist erwähnenswert sowieso.

Verwandte Themen