Question

I've one script who is including another by this way :

 <script type="text/javascript" charset="UTF-8">
        //<![CDATA[
        ; (function (window, document, ud) {
            var AnId = 654654;
            var script                = document.createElement('script');
            script.setAttribute('charset', 'UTF-8');       
            script.setAttribute('src', '//something.com/blabla.js');
            script.setAttribute('type', 'text/javascript');
            document.getElementsByTagName('head')[0].appendChild(script);
        })(window, document);
    //]]>

       var AnId = 65777;
     </script>

My blabla.js must be executed right after being included to have the correct AnId value(654654) how can I deal with this execution order. Or is there another approach.

My final goal is to include several time the same script(with different id) without collision between them.

Was it helpful?

Solution

script.async = false;

From https://developer.mozilla.org/en/docs/Web/HTML/Element/script:

Set this Boolean attribute to indicate that the browser should, if possible, execute the script asynchronously. It has no effect on inline scripts (i.e., scripts that don't have the src attribute).

OTHER TIPS

You can use onload event handler to create and run the second script:

script.onload = function() {
  runTheSecondScript();
};

Use the "load" event to make sure you will execute the following code in the proper time.

script.addEventListener('load', function(){
  var AnId = 65777;
});
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top