zjmiller
zjmiller

Reputation: 2807

Why does window.onload work while document.onload doesn't?

Can anyone tell me why the following page doesn't trigger an alert when it loads? If I use window.onload instead of document.onload it works. Why is there this difference?

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">

document.onload = function() {
    alert('Test');
}

</script>
</head>
<body>
</body>
</html>

Upvotes: 6

Views: 11306

Answers (2)

Wayne
Wayne

Reputation: 60424

The simplest answer is that it just wasn't designed that way. The browser executes the function attached to window.onload at the "end of the document loading process". It does not attempt to execute a function attached to document.onload.

You could assign a function to document.onload but the browser will not do anything special with it.

Some things to keep in mind (assuming you've just assigned a function to one or the other of window.onload or document.onload):

  1. window.onload === onload
  2. window.onload !== document.onload
  3. window !== document

Upvotes: 8

Quentin
Quentin

Reputation: 944555

The event handler is onload not document.onload. It hangs directly off the window object (which is the default object).

Upvotes: 1

Related Questions