Ho problemi con le variabili globali.Javascript: variabili globali condivise tra file .js
Considerando che ho i seguenti file: init.html, main.html, Init.js, main.js e help.js:
Dove, init.html:
<HTML>
<HEAD>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.3.min.js"></script>
<script type="text/javascript" charset="UTF-8" src="init.js" ></script>
<script type="text/javascript" charset="UTF-8" src="main.js" ></script>
<script type="text/javascript" charset="UTF-8" src="help.js" ></script>
</HEAD>
<BODY>
<script>
$(document).ready(function() {
test();
});
</script>
</BODY>
</HTML>
In Init.js:
function test(){
alert(window.glob);
}
In main.html:
<HTML>
<HEAD>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.3.min.js"> </script>
<script type='text/javascript' >
top.glob = "global variable";
</script>
<script type="text/javascript" charset="UTF-8" src="help.js" ></script>
<script type="text/javascript" charset="UTF-8" src="main.js" ></script>
</HEAD>
<BODY>
<div id="divtest"></div>
<form>
<input type="button" value="button" onClick="callTest()" />
</form>
</BODY>
</HTML>
main.js:
function change(p){
window.glob = p;
$('#divtest').html("<iframe id='IFRAMEtest' width='720' height='400' frameborder='0' src='init.html'></iframe>");
}
E in help.js:
function callTest(){
change('param');
}
quando clicco a pulsante, visualizza "variabile globale", ma ho bisogno di visualizzare "param".
In breve, ho bisogno che un file .js legga una variabile globale in un altro file js in cui questa variabile viene inserita in una funzione chiamata da un evento di un utente.
Grazie.
modifica - variabile globale inizializzata prima di importare i file. js e usando il top. Funziona in IE e Firefox, ma il display cromato "indefinito"
Prendere in considerazione la possibilità di ridurre al minimo l'utilizzo di proprietà globali (variabili globali e funzioni globali). Lo spazio dei nomi globale contiene già centinaia di nomi: non vuoi spingere i tuoi nomi in quello spazio dei nomi. –
Sì, d'accordo - so che forse lo sapete già, ma i globals sono quasi sempre un modo terribile di fare le cose. Logica astratta in funzioni e passa invece i parametri. Firmato, il ragazzo che deve mantenere il codice spaghetti un giorno :) –