为什么body onload工作但window.onload或document.onload不起作用

时间:2013-05-29 08:44:14

标签: javascript

所以我想隐藏一个div,所以我有我的代码

function hide(){hide div code}

document.onload = hide();

不起作用。

window.onload = hide();

不起作用。

但是,如果我转到HTML文档并编写

<body onload="hide()"> 

这有效。

现在我明白我不应该在html文档中使用javascript,但是如何实际使javascript等待整个页面加载然后执行一些代码。我确信代码在页面加载之前就已经运行了,我只是无法解决原因。

你对我如何使这项工作有任何想法吗?

3 个答案:

答案 0 :(得分:2)

要使这项工作,您必须传递函数本身,而不是调用它并传递它返回的值。

这意味着你必须写:

window.onload = hide;  // Without parentheses.

顺便提一下,请注意window只支持document,而不是{{1}}。

答案 1 :(得分:1)

此外,您可以尝试像这样调用您的代码:

window.onload = function () { hide(); }

答案 2 :(得分:0)

是的,我修复了它,这是另一个导致我的功能出错的JS元素!