Aggiungere al volo codice Javascript
In ambito lavorativo, mi sono trovato a dover sviluppare un sistema AJAX based per la realizzazione automatica di wizard.
In breve, viene caricata una pagina contenitore che gestisce tramite operazioni asincrone il caricamento dei singoli step del wizard.
Le pagine HTML contenenti il layout vengono gestite in maniera molto semplice impostando la proprietà innerHTML di un dato DIV.
-
var nuovaPagina = funzioneCheCaricaIlLayout();
-
var container = document.getElementById('containerId');
-
container.innerHTML = nuovaPagina;
Le cose però si complicano nel momento in cui si vogliono caricare al volo anche degli script. Al fine, per esempio, di effettuare una validazione sui campi della form.
Il metodo usato per l'HTML non funziona.
Gli script vanno aggiunti in maniera differente.
E' necessario innanzi tutto creare un oggetto script, valorizzarne qualche proprietà, e poi aggiungerlo all'elemento 'head' della pagina.
Se si vuole aggiungere direttamente il testo dello script:
-
var nuovoScript = document.createElement('script');
-
nuovoScript.type = 'text/javascript';
-
nuovoScript.text = 'function nuovoAlert() {alert('hello world'');}';
-
document.getElementsByTagName('head')[0].appendChild(nuovoScript);
...mentre se si desidera caricare lo script da un file esterno:
-
var nuovoScript = document.createElement('script');
-
nuovoScript.type = 'text/javascript';
-
nuovoScript.src = 'http://url.contenente.lo.script';
-
document.getElementsByTagName('head')[0].appendChild(nuovoScript);
Questo sistema aggiunge gli script senza però preoccuparsi di cancellare i precedenti. Ciò non dovrebbe costituire un problema in quanto javacript permette di dichiarare più volte variabili e funzioni, tenento in considerazione solamente le ultime aggiunte.

è esattamente il mio problema!!!!!!!!!
Però non ho capito come l'hai risolto: il codice che hai descritto lo metti nella pagina inclusa? Riesci a fare magari un esempio più completo?
Comment di Xoinas — giugno 19, 2007 @ 12:28 pm
Ciao,
E' il problema che affronto in queste ore, tuttavia non comprendo come implementare la soluzione che proponi. potresti dirmi maggiori dettagli?
Grazie,
Maurizio
Comment di Maurizio — dicembre 27, 2007 @ 12:48 pm
Amoxicillin trihydrate....
Buy amoxicillin without prescription. Amoxicillin. Amoxicillin for your pet. Amoxicillin drug interactions. Augmentin vs amoxicillin....
Trackback di Amoxicillin effects on a fetus. — giugno 27, 2009 @ 4:56 am