PROBLEMA Variabile globale JS che non....varia

michael92m

Utente Attivo
255
19
CPU
Ryzen 5 3600
Dissipatore
Noctua NH-U14S
Scheda Madre
MSI B450 gaming plus max
HDD
Samsung 860 EVO + Samsung M.2 970 EVO Plus
RAM
Crucial Ballistix 2x8gb 3600mhz
GPU
AMD Radeon RX 6800XT
Monitor
LG 32GP850
PSU
Seasonic Focus 750 80+ Gold
Case
Corsair Spec-Omega red
OS
Windows 10
Buonasera,
sto litigando con una variabile globale in javascript... :grrr: quel che voglio fare in pratica è usare una funzione per assegnare a questa variabile un valore preso da un campo input di una pagina dopodiché, nella pagina successiva, usare un'altra funzione per assegnare un secondo valore preso da un altro campo input ad una variabile locale e confrontarle.

JavaScript:
//dichiaro la variabile globale
var def_pwd_enable="";  


function pwd_set(){
//se viene premuto il tasto "invio" il contenuto del campo input viene salvato
//nella variabile globale dichiarata in precedenza
  var x = event.keyCode;
        if (x == 13) {
         def_pwd_enable = document.getElementById('def_pwd_set').value;
//dopodiché viene aperta la seconda pagina...
    window.open('pagina2.html','_self');
    }  
        }
//... dove per il momento vorrei limitarmi a "stampare" il contenuto della
//variabile globale per verificare che l'operazione si andata a buon fine
function pwd_write(){
document.getElementById("prova").innerHTML = def_pwd_enable;
}

HTML:
<!--pagina 1-->

<body onkeydown="pwd_set()">
    <h1>Inserire password:</h1>
    <br>
  <input type="text" id="def_pwd_set">
</body>

<!--pagina 2-->

<body onload="pwd_write()">
    <p id="prova">prova    </p>
</body>

Su java tempo fà ricordo di aver fatto la stessa identica operazione senza problemi, ma con javascript non riesco a cambiare valore a quella variabile. cosa sbaglio?
 
Ultima modifica:

Mursey

Super Moderatore
Staff Forum
Utente Èlite
8,229
5,658
Nella seconda pagina la variabile ti risulta undefined ?
Dovrebbe essere così perchè una variabile "globale" è comunque sotto lo scope di window di quella pagina.

Quindi la variabile è globale solo per la singola pagina.
 
  • Mi piace
Reazioni: michael92m

michael92m

Utente Attivo
255
19
CPU
Ryzen 5 3600
Dissipatore
Noctua NH-U14S
Scheda Madre
MSI B450 gaming plus max
HDD
Samsung 860 EVO + Samsung M.2 970 EVO Plus
RAM
Crucial Ballistix 2x8gb 3600mhz
GPU
AMD Radeon RX 6800XT
Monitor
LG 32GP850
PSU
Seasonic Focus 750 80+ Gold
Case
Corsair Spec-Omega red
OS
Windows 10
Ciao di nuovo :hihi:
Si, risulta proprio undefined...
C'è qualche modo per renderla "disponibile" per entrambe le pagine senza ricorrere a php o ad ajax?
 

michael92m

Utente Attivo
255
19
CPU
Ryzen 5 3600
Dissipatore
Noctua NH-U14S
Scheda Madre
MSI B450 gaming plus max
HDD
Samsung 860 EVO + Samsung M.2 970 EVO Plus
RAM
Crucial Ballistix 2x8gb 3600mhz
GPU
AMD Radeon RX 6800XT
Monitor
LG 32GP850
PSU
Seasonic Focus 750 80+ Gold
Case
Corsair Spec-Omega red
OS
Windows 10
Missione compiuta! :luxhello: Sto realizzando una sorta di minigioco e, seppur la barra degli indirizzi non sia visibile in quanto la pagina è a schermo intero, col metodo GET ovviamente nell'url compare la password in chiaro. Si possono nascondere i parametri che vengono passati o lascio così ed improvviso una funzioncina per il criptaggio?
 

Albo89

Utente Èlite
5,897
2,464
CPU
Ryzen 5700G
Dissipatore
Deep Cool castle 360 rgb v2
Scheda Madre
Rog Strix B550-F GAMING (WI-FI)
HDD
980 1TB
RAM
Ballistix 3600mhz 8Gbx2
GPU
1080 Ti Aorus xtreme
PSU
Corsair RM750x
se non ti piace vedere il parametro nell'url puoi optare per cookie o localstorage;
 

michael92m

Utente Attivo
255
19
CPU
Ryzen 5 3600
Dissipatore
Noctua NH-U14S
Scheda Madre
MSI B450 gaming plus max
HDD
Samsung 860 EVO + Samsung M.2 970 EVO Plus
RAM
Crucial Ballistix 2x8gb 3600mhz
GPU
AMD Radeon RX 6800XT
Monitor
LG 32GP850
PSU
Seasonic Focus 750 80+ Gold
Case
Corsair Spec-Omega red
OS
Windows 10
Ho poi usato il localstorage infatti :rolleyes: Avevo un'altra concezione di variabile globale, che nel caso di Javascript mi han spiegato funzionare solo finché si rimane all'interno della stessa Tab. Grazie ad entrambi per le risposte :)
 

Skills07

Head of Development
Staff Forum
Utente Èlite
35,410
11,490
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb ,2tb x 2 toshiba P300, 256 Ssd silicon power, Samsung evo plus 1tb nvme
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
Zotac - RTX 3070 Ti Trinity OC
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
si javascript non è java che puoi creare delle variabili statiche in modo pubblico e poi vederle dalle altre classi.
Con javascript occorre inizializzare quella variabile e passarla alla seconda pagina con query string
oppure salvarla nei cookie e localstorage.
 
  • Mi piace
Reazioni: michael92m

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili