Never use window.onload

June 17, 2020

The window.onload event gets fired when all resources - including images, external script, CSS - of a page have been loaded.

If you want to do something when that event has been fired you should always use the window.addEventListener method.

window.addEventListener("load", function() {
  console.log('Site has been loaded');
});

Here is why:

  window.onload = function() {
    console.log('Site has been loaded')
  }

Consider this code above, the result is exactly the same as when using the addEventListener method.

So what is the difference?

The window.onload property can only be assigned once!

window.onload = function() {
  console.log('This will not be logged')
}

window.onload = function() {
  console.log('Because its overwritten here!')
}

This can lead to ugly bugs and unintended behavior.

Here is a codepen demonstrating this behavior.