Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Variabili globali?

  1. #1
    Utente di HTML.it L'avatar di Reiuky
    Registrato dal
    Jul 2008
    Messaggi
    371

    Variabili globali?

    Non capisco bene come viene interpretato Javascript...

    Perché questo codice

    codice:
    <script type="text/javascript">
    			<!--
    				var imgPath       = new Array();
    				var imgName       = new Array();
    				var imgDidascalia = new Array();
    				var imgHeight 	  = new Array();
    				var imgWidth	  = new Array();
    				
    				var imgload = 'http://localhost/eclipse/Immagini//Templates/photogallery/loading.gif';
    				
    			
    				imgPath[0] = "http://localhost/eclipse/Immagini/Gallery/3.jpg";
    				imgName[0] = "I danni sulla Sp 13 “Coronella – Ponte Panfilia”.";
    				imgDidascalia[0] = "I danni sulla Sp 13 “Coronella – Ponte Panfilia”.";
    				imgWidth[0] = "450";
    				imgHeight[0] = "337";
    			-->
    			</script>
    <script src="http://localhost/eclipse/Engine/JS/photogallery/cambia_immagine.js" type="text/javascript"></script>
    Funziona senza problemi e questo

    codice:
    
    <script type="text/javascript">
    // <!--
    	var imgPath       = new Array();
    	var imgName       = new Array();
    	var imgDidascalia = new Array();
    	var imgHeight 	  = new Array();
    	var imgWidth	  = new Array();
    		
    	var imgload = 'http://localhost/eclipse/Immagini/Templates/photogallery/loading.gif';
    			
    function LightboxDelegate(url,caption) {
    	imgPath[0] = url;
    	imgName[0] = caption;
    	imgDidascalia[0] = "";
    
    	cambiaImage(0)
    }
    
    
    // -->
    </script>
    
    <script src="http://localhost/eclipse/Engine/JS/photogallery/cambia_immagine.js" type="text/javascript"></script>
    no?

    In pratica la differenza tra i due codici è che il primo le variabili globali imgPath, ImgName e imgDidascalia vengono valorizzate subito, nel secondo vengono valorizzate quando viene chiamata la funzione.

    Nel primo caso lo script "cambia_immagine.js" legge correttamente le variabili, nel secondo gli arrivano vuote. Eppure (pensavo che) essendo le variabili globali, le modifiche apportate dalla prima funzione vengono viste anche dalla seconda.

    Bho....
    A volte penso che, nel darci l'intelletto, la natura sia stata più sadica che generosa.

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    ma se lo script ha bisogno che le tue variabili siano valorizzate allora devi chiamare la funzione LightboxDelegate() PRIMA di includere lo script...
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Utente di HTML.it L'avatar di Reiuky
    Registrato dal
    Jul 2008
    Messaggi
    371
    Originariamente inviato da fcaldera
    ma se lo script ha bisogno che le tue variabili siano valorizzate allora devi chiamare la funzione LightboxDelegate() PRIMA di includere lo script...
    Ah, ok. Io speravo che a javascript non importasse che le variabili fossero valorizzate prima di chiamare gli script che le usa.

    Purtroppo non posso chiamare LightboxDelegate prima di inserire lo script, dato che è una funzione che si attiva a un'azione dell'utente in navigazione.

    Comunque grazie. Vorrà dire che butto via il codice e ne faccio uno ex novo.
    A volte penso che, nel darci l'intelletto, la natura sia stata più sadica che generosa.

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da Reiuky
    Ah, ok. Io speravo che a javascript non importasse che le variabili fossero valorizzate prima di chiamare gli script che le usa.
    questo non lo so. Ipotizzo che sia così visto che la sola differenza sostanziale parrebbe proprio quella... e non so lo script successivo che cosa faccia con quelle variabili.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.