96 votes

Appel de la fonction javascript après le chargement du script.

J'ai une page html où j'ajoute du html dynamiquement à travers un javascript comme ci-dessous

<script type="text/javascript" src="/myapp/htmlCode"></script>

Je veux appeler une fonction js par exemple loadedContent() ; une fois que le script ci-dessus ajoute du html dynamique.

Quelqu'un peut-il m'aider à faire cela ?

4voto

Marco Panichi Points 372

Ma réponse est une extension de la Réponse de Jaykesh Patel . J'ai implémenté ce code afin de charger plusieurs javascript . J'espère que cela aidera quelqu'un :

// RECURSIVE LOAD SCRIPTS
function load_scripts( urls, final_callback, index=0 )
{
    if( typeof urls[index+1] === "undefined" )
    {
        load_script( urls[index], final_callback );
    }
    else
    {
        load_script( urls[index], function() {
            load_scripts( urls, final_callback, index+1 );
        } );
    }
}

// LOAD SCRIPT
function load_script( url, callback )
{
    var script = document.createElement( "script" );
    script.type = "text/javascript";
    if(script.readyState) // IE
    {
        script.onreadystatechange = function()
        {
            if ( script.readyState === "loaded" || script.readyState === "complete" )
            {
                script.onreadystatechange = null;
                callback();
            }
        };
    }
    else // Others
    {  
        script.onload = function() { callback(); };
    }
    script.src = url;
    document.getElementsByTagName( "head" )[0].appendChild( script );
    debug("javascript included: "+url);
}

// EXAMPLE  
var main = function()
{
    console.log("main function executed");
}
var js = [ "path/to/script-1", "path/to/script-2", "path/to/script-3" ];
load_scripts( js, main );

0voto

Dan Points 58

C'est tout ce dont vous avez besoin

await new Promise((resolve) => {
    let script = document.createElement("script");

    script.onload = () => {
        resolve();
    };

    script.src = "https://example.net/app.js";

    document.head.appendChild(script);
});

-3voto

Gaspar Junior Points 1
  $.getScript("your script",function () {
      "your action";
  });

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X