2017-02-18 1 views
1

Ich übe die Erstellung einer E-Commerce-Website. Ich habe Schwierigkeiten, meine JavaScript-Variable zwischen der Einkaufswagenseite und der Kassenseite zu übergeben. Ich habe versucht, nach diesem Beispiel:Java Script: Übergabe von Variablen zwischen HTML-Seiten

page one: 
 
<a href="example2.html?myVar1=42&myVar2=66" >LINK</a> 
 

 
page 2: 
 

 
var qs = new Querystring(); 
 

 
var v1 = qs.get("myVar1"); 
 

 
var v2 = qs.get("myVar2");

Ich konnte es nicht bekommen zu arbeiten, weil meine Webseite einen Fehler warf über nicht Abfrage-Zeichenfolge zu erkennen, so dass ich zur Zeit wie diese versuchen, mithilfe von window.localStorage als folgt:

Page 01: 
 

 
<button class="checkout" type="button" onClick="window.location.href='checkout.html'; window.localStorage.setItem("total",total)">Checkout</button> 
 

 

 
Page 2: 
 

 
var name = window.localStorage.getItem("total");
Derzeit bin ich ein console.log (insgesamt) auf der zweiten Seite zu werfen, aber es gibt "null" jedes Mal. Irgendeine Idee, warum es den Wert von der ersten Seite nicht fängt? Bitte helfen Sie. Wenn Sie Vorschläge oder eine Lösung für beide Methoden haben, wäre es sehr willkommen. Ich habe das Gefühl, dass ich mit der zweiten Methode sehr nah dran bin, vielleicht verpasse ich etwas auf der Seite 1, danke im Voraus.

+0

Bei der Verwendung von 'localStorage' keine unvernünftige Lösung ist, du bist nicht wirklich Machen Sie das Javascript-Zeug inline in der HTML sind Sie? Wenn Sie localStorage verwenden möchten, sollten Sie besser prüfen, ob es für den Benutzer verfügbar ist, und gegebenenfalls fehlschlagen. Diese Seite enthält ein gutes Beispiel, das zeigt, wie geprüft werden kann, ob es verfügbar ist: https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API – JakeParis

+0

Was bedeutet "es nicht zum Laufen bringen"? Ihre Snippets sind nicht wirklich gültig. – pvg

+0

'queryString()' ist keine eingebaute JavaScript-Funktion. Wahrscheinlich möchten Sie in 'window.location.search' nach der Abfragezeichenfolge suchen. – JakeParis

Antwort

1

Um Ihre erste Methode zu beheben (Variablen zwischen den Seiten über eine Abfrage-String vorbei), dann würden Sie wahrscheinlich wollen so etwas wie:

// page one: 
<a href="example2.html?myVar1=42&myVar2=66" >LINK</a> 

// page 2: 

var query = window.location.search; 
if(typeof query !== 'undefined') { 
    var params = {}, 
     parts 
    ; 
    // take off the ? and split into groups of key=value strings 
    query = query.replace('?','').split('&'); 

    // split key=value strings into a usable object 
    for(var i=0;i<query.length;i++){ 
     parts = query[i].split('='); 
     params[ parts[0] ] = parts[1]; 
    } 

    // now access your variables like so: 

    params.myVar1 // is now "42" (a string) 
    params.myVar2 // "66" 

} 
+0

In einem modernen Browser können Sie einfach das URL-Objekt verwenden, alternativ eine Bibliothek (was ich glaube, das Poster versucht es, aber es funktioniert irgendwie nicht für sie). Das Zerhacken eines eigenen Querystring-Parsers ist unnötig und wahrscheinlich eine schlechte Idee, weil es Unmengen von Dingen gibt, die schiefgehen können. Sehen Sie sich http://unixpapa.com/js/querystring.html an. – pvg

+0

"URLSearchParams" scheint in einer Reihe von Desktop- und mobilen Browsern nicht verfügbar zu sein. – JakeParis

Verwandte Themen