2012-07-23 22 views
21

Ich möchte einige Daten von einer HTML-Seite zu einer anderen senden. Ich sende die Daten durch die Abfrageparameter wie http://localhost/project/index.html?status=exist. Das Problem bei dieser Methode besteht darin, dass Daten in der URL verbleiben. Gibt es eine andere Methode, um die Daten über HTML-Seiten mit JavaScript oder Jquery zu senden.Daten zwischen HTML-Seiten teilen

+0

Mögliche Duplikate von [Variablen zwischen HTML-Seiten teilen] (http://StackOverflow.com/Questions/21128692/Share-Variables-between-HTML-Seiten) – Darshak

+0

DownVote, weil hier einige Fragen zu diesem Stack verfügbar sind Überlauf – Darshak

+0

: - so was? ... es ist immer noch in dieser Website können Sie leicht, dass – Darshak

Antwort

44

Warum speichern Sie Ihre Werte nicht in HTML5-Speicherobjekten wie sessionStorage oder localStorage, besuchen Sie HTML5 Storage Doc, um weitere Details zu erhalten. Damit können Sie Zwischenwerte temporär/permanent lokal speichern und später auf Ihre Werte zugreifen.

Zum Speichern von Werten für eine Sitzung:

sessionStorage.getItem('label') 
sessionStorage.setItem('label', 'value') 

oder mehr permanent:

localStorage.getItem('label') 
localStorage.setItem('label', 'value') 

So können Sie speichern (vorübergehend) Formulardaten zwischen mehreren Seiten mit HTML5 Speicherobjekte, die Sie können sogar behalten nach reload ..

+5

Sie können auch Variablen auf mehreren Seiten beibehalten (http://stackoverflow.com/questions/1981673/persist-javascript-variables-across- Seiten/1981681 # 1981681) mit 'window.name'. –

+0

Ich kann nicht verstehen, wo definieren Sie diese Zeilen? Vielen Dank –

4

möglicherweise, wenn Sie wollen einfach nur Daten übertragen, die von JavaScript verwendet werden, dann können Sie Hash-Tags wie diese

http://localhost/project/index.html#exist 

verwenden, so einmal, wenn Sie fertig sind retriving die Daten zeigen, die Nachricht und ändern Sie das Fenster .location.hash auf einen geeigneten Wert .. jetzt, wenn Sie die Seite aktualisieren würden die hashtag gewohnt vorhanden sein
HINWEIS: wenn Sie diese stattdessen ot Query-Strings verwenden die Daten nicht

vom Server retrived/gelesen werden gesendet werden
2

Nun, Sie können tatsächlich Daten über JavaScript senden - aber Sie sollten wissen, dass dies die # 1 Exploit-Quelle in Webseiten ist, da es XSS ist :)

Ich persönlich würde vorschlagen, stattdessen ein HTML-Formular zu verwenden und die Javascript-Daten auf der Serverseite zu ändern.

Aber wenn Sie zwischen zwei Seiten teilen möchten (ich nehme an, sie sind nicht beide auf localhost, weil das nicht sinnvoll ist, zwischen zwei Backend-Seiten teilen) müssen Sie die CORS-Header angeben Erlauben Sie dem Browser, Daten an die Domains auf der weißen Liste zu senden.

Diese beiden Links könnten Ihnen helfen, es dem Beispiel über Knoten Backend zeigt, aber Sie erhalten den Punkt, wie es funktioniert:

Link 1

Und natürlich, die CORS spec:

Link 2

~ Prost

12

ich weiß, dass dies eine alte Post, aber ich dachte, meine zwei Cent teilen würde. @ Neji ist richtig, dass Sie sessionStorage.getItem('label') und sessionStorage.setItem('label', 'value') verwenden können (obwohl er die setItem Parameter rückwärts hatte, keine große Sache).Ich viel mehr die folgenden bevorzugen, ich denke, es ist kurz und knapp:

var val = sessionStorage.myValue 

anstelle von getItem und

sessionStorage.myValue = 'value' 

anstelle von setItem.

Auch sollte es, dass JavaScript-Objekte, um zu beachten, zu speichern, müssen sie sie eingestellt werden Zeichenfolge, und analysiert sie zu erhalten, etwa so:

sessionStorage.myObject = JSON.stringify(myObject); //will set object to the stringified myObject 
var myObject = JSON.parse(sessionStorage.myObject); //will parse JSON string back to object 

Der Grund dafür ist, dass session alles speichert als eine Zeichenkette, also wenn du nur sessionStorage.object = myObject sagst, bekommst du nur [object Object], was dir nicht zu viel hilft.

Verwandte Themen