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