Add scripts to delay loading JS

Viewed 33

I am trying to add more scripts to the code below, which forces JS to load after the page content. I'd like to add script2.js, script3.js, etc. Any help would be appreciated.

function downloadJSAtOnload() {
  var element = document.createElement("script");

  element.src = "/home/site/script1.js";
  document.body.appendChild(element);
}

if (window.addEventListener)
  window.addEventListener("load", downloadJSAtOnload, false);
else if (window.attachEvent)
  window.attachEvent("onload", downloadJSAtOnload);
else
  window.onload = downloadJSAtOnload;

1 Answers

Just modify your load script function, in this way for example:

function downloadJSAtOnload(scripts) {
  for (script in scripts) {
    let element = document.createElement("script");
    element.src = scripts[script];
    document.body.appendChild(element);    
  }  
}

let scripts = ["/home/site/script1.js","/home/site/script2.js","/home/site/script3.js"];

if (window.addEventListener)
window.addEventListener("load", downloadJSAtOnload.bind(downloadJSAtOnload, scripts), false);
else if (window.attachEvent)
window.attachEvent("onload", downloadJSAtOnload.bind(downloadJSAtOnload, scripts));
else window.onload = downloadJSAtOnload.bind(downloadJSAtOnload, scripts);

Related