keenone2
keenone2

Reputation: 31

Add scripts to delay loading JS

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;

Upvotes: 2

Views: 48

Answers (1)

F.bernal
F.bernal

Reputation: 2684

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

Upvotes: 2

Related Questions