Вопрос

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.

Это было полезно?

Решение

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).

Другие советы

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;
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top