Caricamento dinamico javascript - problema

di il
2 risposte

Caricamento dinamico javascript - problema

Ho bisogno di aiuto. Provo a spiegare il mio problema.
Nel mio head ho il seguente tag script.
<head>
<script async src=">
</head>

Poi in base a determinate logiche devo caricare un secondo script dinamicamente.
Questo è il codice.
var src = "https://miodominio.it/script_2.j"
var s = document.createElement('script');
s.setAttribute( 'src',src );
s.setAttribute('async','');
document.body.appendChild( s );

in modo dinamico viene creato questo tag
<script async src=">

Fin qui tutto corretto.
Questo script_2.js contiene delle funzioni.
All'interno di script.js viene richiamata una di questa funzione però risulta non definita.

Se io però carico nell'header oltre a script.js anche già script_2.js la procedura funzione correttamente
<head>
<script async src=">
<script async src=">
</head>

Quindi sembra che lo script caricato dinamicamente poi non venga visto correttamente.

Qualche idea?

2 Risposte

  • Re: Caricamento dinamico javascript - problema

    Se non lo definisci async hai lo stesso problema?
  • Re: Caricamento dinamico javascript - problema

    Quand'è che all'interno di 'script.js' richiami la funzione dell'altro script?
    Se viene richiamata subito, potrebbe essere che l'altro script non abbia fatto in tempo ad essere scaricato.

    In genere, è buona cosa aggiungere una callback all'interno della quale richiamare le nuove funzioni:
    
    var s = document.createElement("script");
    
    s.setAttribute( 'src',src );
    s.setAttribute('async','');
    
    s.addEventListener("load", function () {
    	// Qui le funzioni dello script saranno già state caricate
    });
    
    document.body.appendChild( s );
    
Devi accedere o registrarti per scrivere nel forum
2 risposte