Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427

    aggiungere javascript dinamicamente

    Ciao a tutti:

    sto utilizzando una funzione js per inserire dinamicamente delle librerie al volo:

    codice:
    function addJs(collection) {
    
    	var add = function(url){
    	
    		var headID = document.getElementsByTagName("head")[0];         
    		var newScript = document.createElement('script');
    		newScript.type = 'text/javascript';
    		newScript.src = url;
    		headID.appendChild(newScript);
    
    		console.log(url);
    		
    		console.log(typeof(A_TCALCONF))
    	
    	}
    
    	for(var js = 0;js < collection.length;js++){
    		
    			add(collection[js]);
    	  
    	}
    
    }
    alla funzione passo un oggetto json con i valori degli url relativi.

    var collection = ['file1.js','file2.js'];
    addJs(collection);

    il problema è che il file1.js contiene una variabile A_TCALCONF
    che dovrebbe servire nel secondo file.
    Solo che anche se viene inserito nell head correttamente la variabile non viene inizializzata.

    Dove sbaglio ?
    grazie.
    2000 post e sono più vecchio di 4 anni...
    grazie a tutti....

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    non aspetti che il file esterno venga caricato,
    cosa abbastanza delicata e per cui esistono script e plugin appositi

    ciao

  3. #3
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    non posso usare un setimeout ed eseguire lo script dopo il load?
    2000 post e sono più vecchio di 4 anni...
    grazie a tutti....

  4. #4
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    codice:
    function addJs(collection) {
    
    	var loaded = false;
    
    	var add = function(url){
    	
    		var headID = document.getElementsByTagName("head")[0];         
    		var newScript = document.createElement('script');
    		newScript.type = 'text/javascript';
    		newScript.src = url;
    		newScript.onload=function(e){
    		 
    			loaded == true;
    		
    		};
    		
    		var test = headID.appendChild(newScript);
    		return loaded;
    	
    	}
    
    	for(var js = 0;js < collection.length;js++){
    	
    			while(add(collection[js]) == true){
    			
    			//return;
    			}
    
    	  
    	}
    
    
    }
    2000 post e sono più vecchio di 4 anni...
    grazie a tutti....

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Significa che hai risolto, e hai postato la soluzione?
    Sicuro che questo loaded == true; sia corretto?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    non è al 100%

    va in cache e funzia senza cache non carica.
    2000 post e sono più vecchio di 4 anni...
    grazie a tutti....

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da agenti
    non è al 100%

    va in cache e funzia senza cache non carica.
    Meglio che niente, d'altronde se il mitico Xinod dice che è "operazione delicata" credici e troppo preparato per dire cavolate

    P.S. E caricare i file con ajax e jquery l'hai valutato?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    cmq questo era errato ovviamente

    loaded == true;
    2000 post e sono più vecchio di 4 anni...
    grazie a tutti....

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.