window.onload vs document.onload

dom-events, event-handling, javascript

Solution

When do they fire?

`window.onload`

- By default, it is fired when the entire page loads, including its content (images, CSS, scripts, etc.).

In some browsers it now takes over the role of `document.onload` and fires when the DOM is ready as well.

`document.onload`

- It is called when the DOM is ready which can be prior to images and other external content is loaded.

How well are they supported?

`window.onload` appears to be the most widely supported. In fact, some of the most modern browsers have in a sense replaced `document.onload` with `window.onload`.

Browser support issues are most likely the reason why many people are starting to use libraries such as jQuery to handle the checking for the document being ready, like so:

$(document).ready(function() { /* code here */ });
$(function() { /* code here */ });

For the purpose of history. `window.onload` vs `body.onload`:

A similar question was asked on codingforums a while back regarding the usage of `window.onload` over `body.onload`. The result seemed to be that you should use `window.onload` because it is good to separate your structure from the action.

Problem

Which is more widely supported: `window.onload` or `document.onload`?

Original source