为什么window.onload工作而document.onload不工作?

时间:2011-02-27 20:16:50

标签: javascript

任何人都可以告诉我为什么以下页面在加载时不会触发警报?如果我使用window.onload代替document.onload则可行。为什么会出现这种差异?

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

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

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

2 个答案:

答案 0 :(得分:8)

最简单的答案是它不是那样设计的。浏览器在“end of the document loading process”处执行附加到window.onload的功能。它不会尝试执行附加到document.onload的函数。

可以将功能分配给document.onload,但浏览器不会对其执行任何特殊操作。

要注意的一些事项(假设您刚刚为window.onloaddocument.onload中的一个或另一个分配了一个功能):

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

答案 1 :(得分:1)

事件处理程序为onload而非document.onload。它直接挂起window对象(默认对象)。