문제

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