2017-03-21 6 views
0

Ich kann nicht verstehen, warum das nicht funktioniert: es sollte den Text von ("#name") nehmen und in eine andere HTML-Seite schreiben, die ich beim Klicken auf den Knopf öffne, aber wenn ich die andere Seite öffne, sagt es, dass der "Benutzername" nicht definiert ist, wie kann ich den Wert davon weitergeben?warum es sagt, dass meine var nicht definiert ist

username = []; 

$("#main_page").ready(function() { 
    $("#name").focus(); 

    $("#name").keydown(function(e) { 
    if (e.which === 13) { 
     console.log("ok"); 
     $('#login').click(); 
    } 
    }); 

    $("#login").click(function() { 
    username[0] = $("#name").val(); 
    console.log(username); 
    window.location.replace("chat"); 
    }); 
}); 

$("#chat").ready(function(){ 
    console.log(username[0] + " recived"); 
    $("#username_title").append(username[0]); 
}); 

Ist es falsch zu verwenden $('#chat').ready? Weil es den Code auch in der main_page ausführt.

In der beide Datei html gab ich eine ID, um den Körper für die Verwendung .ready, aber ich denke, es ist falsch

+7

So funktioniert der JS-Code nicht. Es funktioniert nur auf einer einzigen Seite (der aktuell geladenen), daher können Sie keine Variablen im Speicher senden, während Sie es versuchen. Stattdessen müssten Sie den Wert in der Abfragezeichenfolge übergeben oder sie in localStorage oder einem Cookie speichern und dann abrufen, sobald die nächste Seite geladen wurde. –

+0

Und verwenden Sie var, let oder const, um Variablen zu deklarieren – baao

+0

@RoryMcCrossan oh ... ok (Sie traurig mich) –

Antwort

0

Sie könnten "Benutzername" in einen Cookie setzen und "Benutzername" aus dem Cookie auf der nächsten Seite "Chat" erhalten. Sie können auch localStorage oder sessionStorage anstelle von cookie verwenden.

+0

ja, ich habe localStorage, es funktioniert perfekt –

0

Its all about Seite zu laden und Seite entladen

der Umfang einer Variablen nur innen Diese Ereignisse bedeutet, dass keine jq js oder Web-Code (Client-Seite) wird vor oder nach dem

bedeutet, bedeutet, dass Sie einen Code schreiben können und erwarten, dass es funktioniert, auch nachdem Seite neu laden ein ganz neuer Start dann obwohl Sie können Übergeben Sie den Benutzernamen als Querystring und holen Sie ihn, nachdem die Seite neu geladen wurde

Verwandte Themen