Ways to add javascript files dynamically in a page

后端 未结 9 1587
盖世英雄少女心
盖世英雄少女心 2020-11-28 09:16

I have seen Scriptaculous.js file to include its required javascript files dynamically. Is there any better approach to include javascript dynamically.

For example,

相关标签:
9条回答
  • 2020-11-28 09:54

    Create a script tag, set the URL, add it to the document:

    let script = document.createElement("script");
    script.src = "https://example.com/your_script.js"; 
    document.body.appendChild(script);
    

    That's it. There are too many overly complicated answers on this page for such a simple task.

    If you're using modern JavaScript, you can use dynamic importing with a syntax like await import(...). That's out of the scope of this answer, but you can read more about that here.

    0 讨论(0)
  • 2020-11-28 09:56

    To load a .js or .css file dynamically, in a nutshell, it means using DOM methods to first create a swanky new "SCRIPT" or "LINK" element, assign it the appropriate attributes, and finally, use element.appendChild() to add the element to the desired location within the document tree. It sounds a lot more fancy than it really is. Lets see how it all comes together:

    function loadjscssfile(filename, filetype){
     if (filetype=="js"){ //if filename is a external JavaScript file
      var fileref=document.createElement('script')
      fileref.setAttribute("type","text/javascript")
      fileref.setAttribute("src", filename)
     }
     else if (filetype=="css"){ //if filename is an external CSS file
      var fileref=document.createElement("link")
      fileref.setAttribute("rel", "stylesheet")
      fileref.setAttribute("type", "text/css")
      fileref.setAttribute("href", filename)
     }
     if (typeof fileref!="undefined")
      document.getElementsByTagName("head")[0].appendChild(fileref)
    }
    
    loadjscssfile("myscript.js", "js") //dynamically load and add this .js file
    loadjscssfile("javascript.php", "js") //dynamically load "javascript.php" as a JavaScript file
    loadjscssfile("mystyle.css", "css") ////dynamically load and add this .css file
    

    i hope its use full

    0 讨论(0)
  • 2020-11-28 10:00

    To add a new javascript file dynamically:

    function includeJS(jsFile) {
        $('head').append($('<script>').attr('type', 'text/javascript').attr('src', jsFile));
    }
    
    
    // Pick a JS to load
    if ($.browser.msie) {
        includeJS('first.js');
    } else {
        includeJS('second.js');
    }
    includeJS('third.js');
    
    0 讨论(0)
提交回复
热议问题