Javascript 为什么body onload工作,但window.onload或document.onload不工作

Javascript 为什么body onload工作,但window.onload或document.onload不工作,javascript,Javascript,所以我想隐藏一个div,所以我有我的代码 function hide(){hide div code} document.onload = hide(); 不起作用 不起作用 但是如果我转到HTML文档并编写 <body onload="hide()"> 这很有效 现在我明白了我不应该在html文档中使用javascript,但是我如何让javascript等待整个页面加载完毕,然后执行一些代码呢。我确信代码是在页面加载之前运行的,我就是不知道为什么 你对我如何实现这一点

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

function hide(){hide div code}

document.onload = hide();
不起作用

不起作用

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

<body onload="hide()"> 

这很有效

现在我明白了我不应该在html文档中使用javascript,但是我如何让javascript等待整个页面加载完毕,然后执行一些代码呢。我确信代码是在页面加载之前运行的,我就是不知道为什么


你对我如何实现这一点有什么想法吗?

要实现这一点,你必须传递函数本身,而不是调用它并传递它返回的值

这意味着你必须写:

window.onload = hide;  // Without parentheses.

在传递过程中,请注意,只有
窗口
,而不是
文档

才支持传递。要使此工作正常,您必须传递函数本身,而不是调用它并传递它返回的值

这意味着你必须写:

window.onload = hide;  // Without parentheses.

顺便说一句,请注意,只有
窗口
支持此功能,而不是
文档

也可以尝试这样调用代码:

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

此外,您可以尝试如下方式调用代码:

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

是的,我修复了它,它是另一个JS元素,给我的函数带来了麻烦

是的,我修复了它,是另一个JS元素给我的函数带来了麻烦

它似乎不起作用。即使我为测试而输入的警报也不起作用,但是当我有括号时,它(警报)起作用。当您将处理程序分配给
窗口时。onload
?如果这样做太晚,加载事件可能已经触发。window.onload位于页面顶部。我修复了它,这是另一个JS元素引起的问题。感谢您注意到document.onload=hide(不带括号)不起作用。它似乎不起作用。即使我为测试而输入的警报也不起作用,但是当我有括号时,它(警报)起作用。当您将处理程序分配给
窗口时。onload
?如果您这样做太晚,加载事件可能已经触发。window.onload位于页面顶部。我修复了它,它是另一个JS元素引起的问题。感谢您注意到document.onload=hide(不带括号)不起作用。抱歉,请尝试window.onload而不是document.onload抱歉,尝试window.onload而不是document.onload