Variable über JavaScript von einer HTML-Seite an eine andere übergeben

8

Ich habe zwei Seiten - "Seite 1" und "Seite 2". Auf Seite 1 gibt es eine Textbox mit einem Wert von z.B. 100 und ein Knopf am Ende.

Durch Drücken der Schaltfläche Ich möchte Javascript den Wert des Textfelds in einer globalen (?) Variable speichern und auf Seite 2 springen. Mit "window.onload" möchte ich eine zweite Javascript-Funktion, um den auf Seite1 gespeicherten Wert zu alarmieren .

Hier ist mein Javascript-Code:

%Vor%

%Vor%

Auf "Seite 1" habe ich diesen Send-Button mit:

%Vor%

Es startet die Javascript-Funktion und leitet mich korrekt auf meine Seite2 weiter.

Aber damit auf der zweiten Seite:

%Vor%

Ich bekomme immer einen "undefinierten" Wert des globalen Variablenpreises.

Ich habe viel über diese globalen Variablen gelesen. Z.B. auf dieser Seite: Problem mit globaler Variable .. Aber ich kann es nicht funktionieren ...

Warum funktioniert das nicht?

    
Kronwied 04.01.2015, 12:49
quelle

3 Antworten

17

Ohne Ihren Code zu lesen, aber nur Ihr Szenario, würde ich mit localStorage lösen. Hier ist ein Beispiel, ich verwende prompt() kurz.

Auf Seite1:

%Vor%

Auf Seite2:

%Vor%

Sie können auch Cookies verwenden, aber localStorage lässt viel mehr Leerzeichen zu, und sie werden nicht zurück an Server gesendet, wenn Sie Seiten anfordern.

    
potasmic 04.01.2015, 13:16
quelle
4

Ihre beste Option ist es, den Query String zu verwenden, um den Wert zu senden.

Wie erhält man einen Abfragezeichenfolgenwert mithilfe von JavaScript

  • Also leitet Seite 1 auf page2.html um? SomeValue = ABC
  • Page 2 kann dann Lesen Sie die Abfragezeichenfolge und speziell den Schlüssel 'someValue'

Wenn dies mehr als eine Lernübung ist, sollten Sie die Sicherheitsimplikationen berücksichtigen.

Globale Variablen werden Ihnen hier nicht helfen, da sie nach dem Laden der Seite zerstört werden.

    
LiamB 04.01.2015 12:51
quelle
0

Sie haben ein paar verschiedene Optionen:

  • Sie können einen SPA-Router wie SammyJS oder Angularjs und einen UI-Router verwenden, damit Ihre Seiten statusbehaftet sind.
  • Verwenden Sie sessionStorage, um Ihren Status zu speichern.
  • speichert die Werte im URL-Hash.
Martin 04.01.2015 13:16
quelle